阿里云免费证书 https + nginx 实现网站全站https安全链接
原创    emptycity    发表于:2017-11-30 16:41:07
  阅读 :1.3k+   收藏   编辑

概述

Google 的 Chrome 浏览器将在 2017 年 1 月开始,标记使用不加密的 HTTP 协议的网站为 Not Secure,
也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的 HTTP 的网站是不太安全的,

这里介绍如何在阿里云上免费申请安全证书,以及在nginx中的相关配置

证书申请

申请地址:
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.1.zTLyhO&commodityCode=cas#/buy

证书类型选择“免费型DV SSL”

具体申请流程请参考
https://bbs.aliyun.com/read/303413.html?spm=5176.100241.0.0.zGHlIG
这里不再做说明。

nginx配置

当证书已经签发时,我们下载nginx版本的,

在nginx的conf目录,我们创建“cert”文件夹

mkdir cert
将我们下载的证书中的
xxxxxxxxxxxxx.key
xxxxxxxxxxxxx.pem

上传至该目录下

编辑nginx.conf文件,参考如下
server {

  listen 443;
  ssl on;
  ssl_certificate   cert/xxxxxxxxxxxxx.pem;
  ssl_certificate_key  cert/xxxxxxxxxxxxx.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;

  server_name xx.com www.xx.com ;
  root 你的项目路径 ;

  if ( $host != "xx.com" ){
        rewrite ^/(.*)$   https://xx.com/$1 permanent;
  }


  location / {

        proxy_pass http://127.0.0.1:端口;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}
同时配置http强制调转到https
server {

  listen 80;
  server_name xx.com www.xx.com ;
  root 你的项目路径 ;

  if ( $host != "xx.com" ){
        rewrite ^/(.*)$   https://xx.com/$1 permanent;
  }
  return   301 https://xx.com$request_uri;

}
评论
条评论