最近参加微信小程序比赛,发现连接站点的时候必须要有SSL证书,于是自己动手弄了一个(本人也是菜鸟一只,有不当之处请多多指教)。
首先要购买一个证书,我用的是阿里云上的免费证书。
接下来就是证书的安装。在nginx目录下新建一个cert目录,证书购买过后会有一个压缩文件,解压文件过后会有一个.pem文件和.key文件,将这两个人文件上传到之前新建的cert目录下。
然后是nginx的配置。打开nginx.conf找到
# HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # }
#}
添加
server { listen 443; server_name ancdbck.top; ssl on; root /web; index index.html index.htm; ssl_certificate cert/*.pem;#*.pem为上传的pem文件的文件名 ssl_certificate_key cert/*.key;#*.key为上传的key文件的文件名 ssl_session_timeout 5m; 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 / { root /web; index index.html index.htm; }
}
此时已经可以通过https访问了。但浏览器默认的是http
解决方案:在nginx的配置文件中的server{}中写入rewrite ^(.*)$ https://$host$1 permanent;就可以了。
------------------------------------------------------------------------------------------------------------------
再次申明:我也是菜鸟一只,若有不当之处还望多多指教。
