终于加上小绿锁


前几天在某大佬群里水的时候大家无意间提到了小绿锁(https)都在说自己用了什么什么协议用的哪里哪里的证书。于是弱弱的问了一句:“大佬们都是上了锁吗?”

于是就被鄙视了。

其实我个人是懒的去上锁的,当初https大范围应用时全网速度都下降了一个层次。(后来证实是上游DNS被攻击的缘故)所以对上锁有点抗拒。说是更安全,其实我觉得没什么用处。有人想办法赚钱就有人想办法偷钱,过于在意没什么意义。但是现在大家都上了那我就也跟随大众吧(据说谷歌现在都划标识了)。

自己一直用的amh面板,平时实验多所以环境装的很乱。加小绿锁时遇到了很多问题,所以写篇文章来纪念下我死去的脑细胞。

申请证书之类的都和网上大多一样,这个过程就不说了。

拿到了证书文件之后在amssl里配置。遇到的第一个问题是模块使用问题。

这里需要先填写数据然后创建,才能填CSR数据。(不能一次性提交,差评)

第二个坑,应用证书是失败,提示  nginx: [warn] conflicting server name "sshuo.cc" on 0.0.0.0:80, ignored

想不通是为什么,百度上查大多是说nginx配置问题,但是检查了并没有什么错误。

后来突然想起来以前的旧博客其实并没有删除,只是把它放到其他环境并且不解析了。那就对了。打开看了看果然那个旧的博客上还绑着sshuo.cc这个域名。因为域名冲突所以才会提示这个错误,删了之后果然就可以了。

第三个坑,cdn设置。因为没配过小绿锁所以不知道cdn是需要特殊设置的。我用的阿里的CDN,在控制台找了半天终于找到HTTPS设置。需要上传你的证书。我是在amh直接获取的,在阿里这里填的时候没注意顺序死活填不对。冷静下来后慢慢仔细的看,才发现两个地方给的顺序不一样。amh先给的私钥,阿里那边是先填的公钥,两个弄反了所以总是失败。(如果服务器上设置了强制跳转阿里那里就别设置了,会出问题的)

第四个坑,资源链接重写。当你配完以上步骤时网站已经可以正常访问了。然而访问时你的资源都丢了(图片、视频、js、css…)

因为你的资源链接都没改,所以无法访问。这时候基本改两个地方就行了。登上你的后台,在网站的基本设置里更改网站地址,把http改为https就好了。

然后进入到数据库执行一个sql语句(以tyoecho为例):

1
UPDATE typecho_contents SET text = REPLACE(text,'http://xx.com/usr/uploads/','https://xx.com/usr/uploads/');

执行后文章中的所有引用链接就全都加上了https,正常访问get

其实到这里就基本结束了,以下两个坑是我自己的,正常人应该遇不到。

加上锁以后顺手换了主题,结果发现主题css丢了一些。可是各种找问题找不到,最后仔细想了想大概是CDN和DNS的锅。

用户访问域名需要通过DNS解析然后找到资源,而CDN则把资源“预存”到了各个节点上去。那么问题就出现了,资源不可能实时更新“预存”,而DNS也需要时间去同步。当我因为加了小绿锁重新配置了CDN后CDN节点开始“预存”资源,并且DNS开始将访问请求通过CDN提供的CNAME解析把请求分配到各个节点,然后各个节点开始和全球进行同步。最后就出现了CDN刷新时间+DNS同步时间=我睡一觉的时间。所以就出现了我这个“反应迟钝”,没想通的时候以为站炸了,其实只是没刷新过来而已。

最后吐槽一句:学校自有DNS真的辣鸡