最近几天明月一直在研究给本博客启用ECC+RSA双证书和加入HSTS Prelod List(预加载表),昨晚上折腾了很久都没有成功。仔细分析了一下问题应该是出在DNS解析和Let's Encrypt证书申请环节了。今天下午抽时间继续折腾中……。
终于皇天不负有心人呀,成功了!并且惊奇的发现原来又拍云 CDN 是支持ECC证书的,只是不支持ECC+RSA双证书而已,所以目前只能是放弃对 Windows XP和Android 4.0的支持了。据说ECC证书的速度相对于RSA证书会快一些,当然这个所谓的“快”其实我们人类是感觉不出来的,就当是增强了证书的安全性吧!
先上图了,www.myssl.com检测已经检测到了ECC证书,这说明在又拍云 CDN 下已经是ECC证书生效了,虽然 CDN 目前无法支持双证书,但是Nginx本身是支持自动切换双证书的。
双证书搞定了,就继续折腾加入 HSTS Prelod List
预加载列表了!这个折腾了我好半天才算是成功,单独申请 www.imydl.tech
是不行的,还得必须保证 imydl.tech
也是已经HTTPS状态才可以,这就要求在申请Let's Encrypt证书的时候必须是 imydl.tech
和 www.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.tech
和 www.imydl.tech
两个域名。
这样的设置是关系到 HSTS Prelod List
预加载列表在申请校验的时候可以顺利通过,否则就会因为无法校验成功被拒。
完成上述DNS解析设置后就可以到 HSTS Prelod List 申请加入 HSTS Prelod List 预加载列表了,这是需要人工审核的,所以成功加入需要1-2周的时间左右,请耐心等待。
至于说加入 HSTS Prelod List
预加载列表的好处,可以用一句话来概述,那就是:“让你的域名「嵌入」主流浏览器,一同发行!”,目前支持HSTS Prelod List
的浏览器有谷歌Chrome、Firefox、Opera、 Safari、IE 11 and Edge等等(可参考HSTS compatibility matrix.)。基本上主流浏览器都会支持这个预加载表的,当然加入后就等同于是抛弃了对 http
的支持,虽然可以撤销这个预加载表,但因为需要至少半年的时间才能成功撤销,所以基本上也就意味着很难撤销,毕竟这对于用户来说会有一定的影响的。说到这里大家应该明白所谓的 HSTS Prelod List
预加载列表就是告诉浏览器你的域名都必须直接使用HTTPS
来访问,不用浏览器根据服务器返回情况来决定是http
还是https
协议了。
今天不做知识性的分享,只是一次对折腾的记录分享而已。
8 条评论
大佬,按照你给的网站申请后,网页提示:No HSTS header,怎么解决呢
你的站点配置文件里需要添加HSTS header进去!
'add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";'
一般都是添加这样的就可以了!
我已经把我的懿古今和boke112导航加入到HSTS了,以后应该也不会回滚到HTTP了
哦,是加入了?还是提交申请了?我提交都这么多天了还没有收录呢?(⋟﹏⋞)
打算后期换成https的,当下看来这是一个趋势了。
是的,这个真的是个大趋势!
太深奥了,理解不来。
哈哈,你就装吧!