阿里云nginx下从http到https

    最近参加微信小程序比赛,发现连接站点的时候必须要有SSL证书,于是自己动手弄了一个(本人也是菜鸟一只,有不当之处请多多指教)。

  首先要购买一个证书,我用的是阿里云上的免费证书。

阿里云nginx下从http到https接下来就是证书的安装。在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;就可以了。

------------------------------------------------------------------------------------------------------------------

再次申明:我也是菜鸟一只,若有不当之处还望多多指教。