之前几个月我关注过目前网上几个免费为个人网站提供 HTTPS 证书的服务,开始了解到的是有一些站长用到的免费一年的沃通证书,后来看到 Let's Encrypt 这个专门提供免费 HTTPS 证书的公益组织。
前段时间发现 Let's Encrypt 终于开始正式提供服务了,看到 Let's Encrypt twitter 里提到 mozilla、Google 这些公司也开始赞助他们,观望了一阵之后看到不少博客主们也启用了他们的证书,虽然 Let's Encrypt 现在只提供 90 天的 HTTPS 证书,但好在有自动部署的工具可以自动更新证书。
这下必须心痒了,启用 HTTPS 的好处无需多说:不仅可以避免目前国内非常常见的运营商网站劫持问题,而且启用了 HTTPS 的网站在 Google 搜索结果中权重也更高。我先参考了来自 360 的大牛 Jerry Qu 的博客文章,看起来步骤还是比较简单清晰的,后来看到有国人写的自动部署 Let's Encrypt 证书的 shell 脚本:
https://github.com/xdtianyu/scripts/tree/master/lets-encrypt
于是就按照上面 shell 脚本的说明步骤修改配置文件在我的 VPS 上开始部署,一般只要配置文件中域名、Web 目录正确的话很快就能得到需要的两个证书文件,例如我的:zohead.chained.crt 和 zohead.com.key,接着修改 Nginx 的 vhost 配置文件,直接在原来 listen 80;
后面直接加上这几句(把证书文件替换为实际路径)然后 reload Nginx 服务即可看到效果:
listen 443 ssl; ssl_certificate /xxx/certs/zohead.chained.crt; ssl_certificate_key /xxx/certs/zohead.com.key;
然后用 https://zohead.com/ 访问发现有点问题,由于博客里用到了 CDN 之类的非 HTTPS 资源(也就是 HTTPS mixed content 问题),Chrome 等浏览器会在地址栏中显示警告锁,下面一一解决:
- 之前使用的七牛云存储 CDN 加速直接用的测试 HTTP 子域名,进七牛后台发现其也是支持 HTTPS 的,只要重新申请 HTTPS 子域名通过之后修改 WordPress WP Super Cache 插件中的 CDN 地址即可,这样博客 CDN 方式引用的 JavaScript、CSS 等资源不会被浏览器阻断;
- Gravatar 头像之前改成了 http://cn.gravatar.com/,现在直接换为 https://cn.gravatar.com/ 这样即可以支持 HTTPS 而且国内用户访问博客不会出现头像不能显示导致访问速度慢的问题;
- 之前用的虾米二维码服务地址竟然不支持 HTTPS,不过还好找到了一个支持 HTTPS 的 goQR.me 免费二维码 API,不知道是否稳定,如果后面有问题就直接在 VPS 里集成算了。
这样小做修改之后,重新用 HTTPS 方式访问博客,Chrome 浏览器的地址栏里就能看到标志安全私密连接的小绿锁咯 ^_^。接下来就是在 crontab 里再增加一个每个月重新部署 HTTPS 证书的任务,如此后面就基本不用人工干预了,最后还是希望有条件的博主们能尽快启用 HTTPS 保平安哦。
最近也看了些,但用的是虚拟主机,也就懒得折腾了
现在很多基于cPanel之类的虚拟主机也是支持设置SSL/TLS证书的哦