用 Nginx 实现 https 转 http
下载
配置
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_certificate /nginx-1.14.0/https/oauth.d.cn/server.pem;
ssl_certificate_key /nginx-1.14.0/https/oauth.d.cn/privkey.pem;
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;#配我们生成的
ssl_certificate_key ssl/server.key;#配我们生成的
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
来匹配你的二级域名
扫描二维码关注公众号,回复:
1952885 查看本文章
配置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
报错解决
参考:
https://blog.csdn.net/lvye1221/article/details/53843607
https://www.cnblogs.com/amboyna/archive/2008/08/30/1280127.html