nginx-nginx配置https
背景
最近在做微信小程序,小程序需要走https协议的。so,就搞起了用nginx来代理这个443端口,默认就是留给https协议的
https证书的话,到某云上申请一个免费的证书,审核通过后,绑定一个域名,然后将这个域名解析到一台有公网IP的机器上,这样,就可以继续玩耍了^_^
!!
解决方案
-
将证书下载到随便一个文件夹,如
cert
,里面有两种类型的文件xx.pem
和xx.key
-
在
nginx.conf
中增加server
节点
server {
listen 443 ssl;
server_name yyy.xxx.com; # yyy.xxx.com 域名
ssl on;
ssl_certificate /cert/cert/domain name.pem; # 将domain name.pem替换成您证书的文件名。
ssl_certificate_key /cert/cert/domain name.key; # 将domain name.key替换成您证书的密钥文件名
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
# 小程序接口
location /mall {
# 代理内部服务
proxy_pass http://127.0.0.1:8080$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host "yyy.xxx.com";
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 180;
send_timeout 1800;
}
# 代理h5静态页面
location /h5 {
root /usr/local/static/
index index.html index.htm;
}
}
在nginx中别忘了reload一下,让修改的文件生效:
nginx -s reload
最后附上操作步骤: 在Nginx/Tengine服务器上安装证书