阿里云nginx下从http到https
最近参加微信小程序比赛,发现连接站点的时候必须要有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;就可以了。
------------------------------------------------------------------------------------------------------------------
再次申明:我也是菜鸟一只,若有不当之处还望多多指教。