最近几天明月一直在研究给本博客启用ECC+RSA双证书和加入HSTS Prelod List(预加载表),昨晚上折腾了很久都没有成功。仔细分析了一下问题应该是出在DNS解析和Let's Encrypt证书申请环节了。今天下午抽时间继续折腾中……。

终于皇天不负有心人呀,成功了!并且惊奇的发现原来又拍云 CDN 是支持ECC证书的,只是不支持ECC+RSA双证书而已,所以目前只能是放弃对 Windows XP和Android 4.0的支持了。据说ECC证书的速度相对于RSA证书会快一些,当然这个所谓的“快”其实我们人类是感觉不出来的,就当是增强了证书的安全性吧!

20180220202429.png

先上图了,www.myssl.com检测已经检测到了ECC证书,这说明在又拍云 CDN 下已经是ECC证书生效了,虽然 CDN 目前无法支持双证书,但是Nginx本身是支持自动切换双证书的。

双证书搞定了,就继续折腾加入 HSTS Prelod List 预加载列表了!这个折腾了我好半天才算是成功,单独申请 www.imydl.tech 是不行的,还得必须保证 imydl.tech 也是已经HTTPS状态才可以,这就要求在申请Let's Encrypt证书的时候必须是 imydl.techwww.imydl.tech 同时申请的证书才可以,也就是说必须保证一个证书里包涵了这两个域名。

Let's Encrypt证书的申请

具体在 acme.sh 里的命令如下:

acme.sh --issue --dns dns_cx -d imydl.tech -d www.imydl.tech

这是申请RSA证书的

acme.sh --issue --dns dns_cx -d imydl.tech -d www.imydl.tech --k ec-256

这是申请ECC证书的

PS:如果要启用双证书上述两个证书申请都需要的,单证书的话任选一个即可,兼容性最好的是RSA证书,ECC证书比较新老版本的系统是无法兼容的,大家可以视情况来选择。

DNS解析调整

完成了证书的申请后,还需要在DNS解析里给 'imydl.tech' 做个单独的解析,也就是 主机记录 为 '@' 的解析,至于是A解析还是CNAME解析这个就根据自己的情况来选择了,如果是启用了 CDN 的话那就是CNAME解析到 CDN ,也就是给 CDN 上绑定 imydl.techwww.imydl.tech 两个域名

这样的设置是关系到 HSTS Prelod List 预加载列表在申请校验的时候可以顺利通过,否则就会因为无法校验成功被拒。

完成上述DNS解析设置后就可以到 HSTS Prelod List 申请加入 HSTS Prelod List 预加载列表了,这是需要人工审核的,所以成功加入需要1-2周的时间左右,请耐心等待。

20180220195942.png

20180220200051.png

20180220200148.png

至于说加入 HSTS Prelod List 预加载列表的好处,可以用一句话来概述,那就是:“让你的域名「嵌入」主流浏览器,一同发行!”,目前支持HSTS Prelod List的浏览器有谷歌ChromeFirefoxOperaSafariIE 11 and Edge等等(可参考HSTS compatibility matrix.)。基本上主流浏览器都会支持这个预加载表的,当然加入后就等同于是抛弃了对 http 的支持,虽然可以撤销这个预加载表,但因为需要至少半年的时间才能成功撤销,所以基本上也就意味着很难撤销,毕竟这对于用户来说会有一定的影响的。说到这里大家应该明白所谓的 HSTS Prelod List 预加载列表就是告诉浏览器你的域名都必须直接使用HTTPS来访问,不用浏览器根据服务器返回情况来决定是http还是https协议了。

今天不做知识性的分享,只是一次对折腾的记录分享而已。

最后修改:2018 年 02 月 20 日
如果觉得我的文章对你有用,请随意赞赏