fun

喜欢的记得拍一下3号链接

给blog上个小锁

  这不是一篇技术文章,主要是记录一下给blog增加SSL认证的过程以防黄鱼脑子日后又想不起了。其实是很有乐趣的。啥啥都很有乐趣,当你能沉浸其中的时候。
  另外,今天巧是02月29日。下一个日历上的今天要4年以后啦,以今年的开年形势来看,一万年真的久,还是争一下朝夕,毕竟已经年纪这么大了。= =!
  好,这就开始。

  Wikipedia第一段是这么说的。

  通俗说就是浏览器地址栏前的小锁,这里面点开,就有该网站的证书信息。目的是给http协议加密,验证身份并且保证信息安全。至于TLS或者SSL,请参考下图理解。其实只有比如交易类(金融、购物这种)或者大型网站才有强制https需求,我这样都没加搜索引擎域的小破站,纯粹用来是装饰/B的,哈哈哈!

  关于加密,其实我觉得还值得深入了解下,有公钥私钥、对称/非对称等概念。可是我也非深度用户,等哪天用到再说吧,留个念想。证书的基础设施架构,大致如下图: 

  接下来说实际操作。

常规做法:

1.申请证书

  当然先要加个前提——不要钱的。比较常用的有Let’s encrypt!、Cloudflare 和 阿里云。有效期分3个月和1年,证书级别也是最低级的DV(Domain Validated)。这对于本站这样非组织,非交易类的blog已经是足够了。

2.证书与域名绑定解析及认证

  各家的都有使用帮助,且网上教程也算充足,不再赘述。

3.将证书上传至Web服务器

  只使用过nginx,只要将证书上传到对应服务器,在conf文件中设置路径即可。

Github Pages:

  这是一个tricky的故事。

  由于事先不知道github的机制,先在阿里申请了证书,在解析并验证了域名之后,一会证书便签发了下来。然后便陷入了半天的思索。github pages只是一个web托管,不知道将证书上传到哪,又如何将证书和github pages关联上。折腾半天,才借鉴前人经验和帮助文档更改了DNS解析,添加了两条CNAME记录(等效4条A记录),并在setting中设置https强制跳转,这样即使访问http链接也会强制跳转到https链接。其实如此简单,但是摸索的过程还是显得蛋疼了些。= =!

<我是强迫症分隔符>

  其实阿里云Symantec的证书是一年的有效期,这样相对于3个月有效期的Let’s encrypt!(github pages强制默认)每年理论上就可以少折腾3次了,况且目前也还不知道可行性和具体的操作要求,还是颇蛋疼。

  由于某些神秘原因,github在墙内的访问速度越来越慢,甚至出现某些页面被屏蔽的情况,加上蛋疼的3个月有效期证书,已然在考虑将blog迁移到VPS上。可是凡事有好也有坏,哪天ip被block就尴尬了,再说VPS的安全可靠性也是一个问号。

  一个深深爱着github的电农,以上。

###Update

  由于SSL上级证书链不完整导致在某些手机浏览器上(其实就是我破菊花厂P10的内置浏览器)拒绝加载自建图床链接内容,提示内容为”证书并非来自可信的授权中心”。

  通过myssl.com解析域名与证书,并且下载完整证书链替换后bug fixed。完整的证书链有两段**—–BEGIN CERTIFICATE—–** & **—–END CERTIFICATE—–**,下图为被block内容站点SSL评级。