以前用过CloudFlare免费SSL证书来实现这个网站的https访问,不过CloudFlare是利用dns解析,把浏览器和服务器之间的数据通过中间服务器加密来实现,速度很慢而且只能使用固定的dns,所以不久我就把这个功能关掉了。最近偶然发现了一家可以提供免费SSL证书的机构Let’s Encrypt
letsencrypt-logo-horizontal
      简单了解了一下,Let’s Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞助行列。目前Let’s Encrypt的证书已经被Mozilla、Google、Microsoft和Apple等主流的浏览器所信任,所以使用起来完全没有问题。证书的申请也很简单,官方有一套自动化的脚本(https://github.com/certbot/certbot)可以完成所有工作
      首先把脚本clone到本地

      生成证书(注意,生成证书时,需要临时关闭nginx服务)

      生成的证书放在/etc/letsencrypt/live/目录下,可以通过tree命令查看

      在nginx的配置文件中加入ssl服务器定义

      再把原先的http部分重定向到https

      重新启动服务器之后,即可看到所有链接已经变成绿色的https链接了。需要注意的是,Let’s Encrypt的证书的有效期只有三个月,所以需要设置一个定时任务,定期更新证书

      另外推荐一个检测网站ssl链接安全性的网站:https://www.ssllabs.com/ssltest/index.html