下载
配置
conf/nginx.conf
server {
# 监听8080端口
listen 8080;#不要占用 即将转发的80端口 。或者直接干掉这个server
location / {
}
}
https 转 http
server {
listen 443 ssl;
# 域名,实际情况下时,将这个改成域名 https://xx.cn
server_name xx.cn;
ssl on;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
# 证书位置
ssl_certificate ssl/server.crt;#配我们生成的 nginx-1.14.0/https/xx.cn/server.pem;
ssl_certificate_key ssl/server.key;#配我们生成的 nginx-1.14.0/https/xx.cn/privkey.pem;
location / {
proxy_pass http://xx.cn;#这里的xx.cn 是我们需要转发的 ,配合 修改hosts文件 : 127.0.0.1 xx.cn
}
}
下面参考:搭建本地https环境
证书生成:
1. 使用openssl生成密钥privkey.pem:
openssl genrsa -out privkey.pem 1024/2038
2. 使用密钥生成证书server.pem:
openssl req -new -x509 -key privkey.pem -out server.pem -days 365
证书信息可以随便填或者留空,只有Common Name要根据你的域名填写。
以我的个人网站为例Common Name (e.g. server FQDN or YOUR name) []: wuyanxin.com
也可以通过*.yourdomain.com
来匹配你的二级域名
配置nginx
server {
listen 443;
server_name youdomain.com;
ssl on;
ssl_certificate /path/to/server.pem;
ssl_certificate_key /path/to/privkey.pem;
...
}
验证配置,重启nginx
$ sudo nginx -t && sudo nginx -s reload
报错解决
出现了 [Unable to load config info from /usr/local/ssl/openssl.cnf ] 异常.然原来这是Unix的默认设置,没有办法,只好建文件[c:/usr/local/ssl],从网上下载openssl.conf,然后改为openssl.cnf,置于c:/usr/local/ssl目录下,好了
参考:
https://blog.csdn.net/lvye1221/article/details/53843607
https://www.cnblogs.com/amboyna/archive/2008/08/30/1280127.html
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用 Nginx 实现 https 转 http(方便本地调试) - Python技术站