<-- home

给Jekyll静态博客添加Https

换成静态博客以后,我的感受就一个字:爽,速度快不说,一切还都免费,还能模仿码农用代码搞博客,折腾网站不就是向程序员看齐嘛。

博客免费托管在Github Pages上,如果直接使用Github免费提供的二级域名username.github.io,访问的时候url已经自带https,就是网址开头的那个小绿锁,但我换上了自己的独立域名,就没有小绿锁了,因为我没有自己域名的https证书。据说2017年以后,包括Google在内的各大互联网服务商,均会以有没有这把小绿锁来判断一个网站是不是安全网站,这显然会影响到传统采用http形式网站的访问量,吓得我赶紧上网查了下怎么给我的小博客添加个https,弄完后做个记录,供跟我一样使用静态博客的朋友参考。

zeovehttps

因为Github Pages不支持上传证书,所以只要你是静态博客,就不能用一般的证书,只能使用动态的https证书。我申请的是Cloudflare(以下简称CF)免费提供的https,实现方式是通过使用CF的域名解析服务来绑定https,用这种方式就意味着你要换掉现在的域名解析服务,比如国内流行的DNSPod,所以适不适合你请自行抉择。大致流程如下:

1.在CF注册账号

2.进入CF后,点击右上角的“+Add Site”,输入你的网站地址,并点击“Begin Scan”,扫描后会出现你域名的DNS记录列表;

3.点击“Continue”后选择“Free Website”,再点击“Continue”,现在需要将你域名原来的解析地址改为现在CF的解析地址,去到你的域名注册商那里,将Nameservers换成CF的两个域名服务器,保存后等待十来分钟的样子,可查看CF面板上的Overview里的Status状态,当为Active就说明OK了;

4.Active以后,点击CF面板上的“Crypto”,右边选择“Flexible”,大致意思是你的读者访问你的网站是加密的,而CF访问你的服务器没有加密,这样你就不需要在Github Pages上传证书,但你的读者也能在你的站点上看到小绿锁;

5.再点击CF面板上的“Page Rules”,将www重定向到你的https网站。第一行输入你的http://的网站地址,第二行选择“Forwarding URL”和“301-Permanent Redirect”;第三行再填入你的https://的网站地址;

6.最后配置强制全站使用https。第一行填你的http://网站地址/*,就是后面加了个通配符,第二行选择“Always Use HTTPS”。

这样就全部结束了,半小时左右再看你的网址,就有那把小绿锁了。

值得注意的是,如果你的站点内有任何不支持https的资源,比如一些第三方的评论系统、图片外链等,你的https仍然不会生效,比如我的首页显示小绿锁,但在部分有图片的页面里就显示不出来小绿锁,我的解决方案是将图片全部搬到了Flickr上再引用它的外链,Flickr是原生支持https的,所以我的问题解决了。其他问题的解决方案我没研究过,如有需要,请自行Google。