免费SSL证书那点事

最近遇到一个在境外的朋友跟我说没有好用的SSL证书用了,我一阵纳闷随手把FreeSSL发给他了,结果他跟我说这个网站现在必须要+86电话号验证了……

2020-11-25_11-09-21-1

因为实名的原因显然国内厂商这些实名认证才能签发的SSL他们是摸不到的,加上最近去年白嫖的AlphaSSL证书过期、Let‘s Encrypt的OCSP被污染等等问题,最近可以说是把我能找得到的证书统统都试了一遍,就简单推荐一下我最近尝试的这些证书吧。

一、免费SSL

TrustAsia

特色:一年有效期、DigiCert根证书

TrustAsia即亚洲诚信,可以说是对中国大陆SSL市场贡献最大的一个SubCA了,包括腾讯云、又拍云、Ucloud、宝塔等等服务商均是其免费产品的提供者,我在友链里面的随手翻翻十个人至少五个都是亚信的证书。

根证书DigiCert非常大众,曾经免费证书也使用了国内的ocsp.dcocsp.cn,但是后来似乎免费版都换回官方的ocsp.digicert.com了,整体兼容性非常棒,是个人站的不二的选择。需要注意的是TrustAsia的证书全平台同一根域下只能有20张有效(不包含过期和吊销的),所以免费也是有限度的,超过这个限度建议付费或考虑通配符证书。

相关平台:腾讯云、宝塔、Ucloud

2020-11-25_19-30-02-1


DigiCert

特色:一年有效期、DigiCert官方CA

DigiCert也就是Symantec自己有一个Encryption Everywhere的入门级CA,厂商需要向DigiCert缴纳一定的费用才能使用,国内主要就财大气粗的阿里云在免费签发,景安的估计是因为没钱了接口已经撤了,海外name.com等厂商均仅向自己的域名+虚拟主机用户开放。

优点与亚洲诚信一样,但是阿里云也是限制账户中最多20张免费证书的,有需求可以搭配着亚信的额度一起用。

相关平台:阿里云、华为云

2020-11-25_19-31-09-1


TrustOcean

特色:三个月有效期、Sectigo根证书、IP证书、通配符、ECC

TrustOcean就是环智中诚,以前好像叫环洋诚信似的(可能是记错了),旗下免费SubCA有三个,Encyption365(近期发布)、UbiquiTLS(Sectigo CA)和CreazySSL(海外市场)。Encyption365之前是在loc进行了宣传,通过他们提供的宝塔的插件进行下单,官方也表示IP证书和通配符证书是符合CA的要求的,可以说是市场上唯一的免费IP SSL了吧。

至于AllinSSL是环洋的ECMP分销系统搭建的,实际上就是一家公司的产品,连通知邮件来源都一样,相比于Encryption365必须通过宝塔插件或者API下单,去AllinSSL自己上传CSR网页验证流程方便多了。AllinSSL里的CreazySSL设置了0.01的费用,由于和UbiquiTLS都是差不多的证书应该没必要去买。

唯一的缺点就是环洋的免费证书证书链要比一般亚信之类的SSL长一级,影响不大,相比于其便利性是可以忽略的。

相关平台:AllinSSL、环智中诚

2020-11-25_19-32-43-1


Buypass

特色:六个月有效期、ACME自动化、自有根证书、ECC

这家是纯种海外SSL商家里面提供的免费时长最长的一个,和亚信一样限制单域名;但是它可以通过ACME便捷地获取,即使你不熟悉ACME的操作,你也可以通过FreeSSL.org使用网页版操作,还是比较方便。

另外值得一提的是他家的OCSP使用的Akamai的CDN,国内加载速度比Sectigo的Stackpath强得多,在国内使用上也是没什么问题的。

相关平台:ACME、FreeSSL

2020-11-25_19-33-35-1


Let’s Encrypt

特色:三个月有效期、ACME自动化、通配符、ECC

Let’s Encrypt大家应该都很熟悉了,有随意域名组合、签发简洁快速、支持泛域名等等优点;由于是基金会的非盈利项目,有非常多的服务商比如Vercel、Heroku等等平台均使用其自动签发的服务。

除了优点之外不得不提到他在大陆比较致命的缺点,它的OCSP服务器指向的的Akamai CNAME受到了污染导致其OCSP请求不可达,会使得Apple用户首次访问白屏数十秒才能因超时而默认信任证书。其次目前LE X3的根证书DST Root CA即将到期,LE也将于明年1月切换至自己在2016年签发的根证书进行分发,不再依赖与老牌CA的交叉授权。

但是LE在2016年的根显然太年轻了,相比DigiCert和Sectigo动辄十几年历史的根证书兼容性会受到很大挑战,比如安卓7以下设备均未内置LE自有的根且无后续更新支持,继续选择LE的证书也意味着对于这25%“落后”用户的淘汰。

相关平台:ACME、Let’s Encrypt

2020-11-25_19-35-28-1


ZeroSSL

特色:三个月有效期、Sectigo根证书、ACME自动化、通配符、ECC

普通的海外土著商家,注册就可以申请。网站免费帐户只能申请3个最大3域名的DV证书,签发和吊销流程很顺畅,网站申请方面没什么亮点。

有大佬提到ZeroSSL可通过ACME签发ECC及通配符的证书,此处有待更新,详情页点击前往(感谢@Edison Jwa的补充)。

ACME可以参考:放弃Let’s Encrypt证书,全站更换ZeroSSL证书 – 饭饭’s Blog

相关平台:ZeroSSL

2020-11-25_19-38-01-1


GoGetSSL

特色:三个月有效期、Sectigo根证书

也是普通的海外土著商家,曾经提供过免费的一年证书。注册就可以申请,免费帐户只能申请最大3域名的DV证书,签发和吊销流程很顺畅,证书本身也没什么亮点。

相关平台:GoGetSSL

2020-11-25_19-34-12-1


二、OCSP

引发这次对不同证书的尝试一个重要方面原因就是OCSP。在你访问部署了某个证书的网站时,浏览器是通过请求证书内嵌的CA的OCSP地址来确定证书有效性,当OCSP不可及的时候浏览器需要在超时后才能放行,也就造成了数十秒的“白屏”。

Let’s Encrypt的OCSP地址使用的CDN指向的CNAME不明原因被污染了,影响主要是使用Apple全平台和IE的用户,其他平台Chrome及其衍生浏览器均默认均未开启OCSP功能;FireFox对于LE的证书也是不校验默认信任的,不过对于其他的证书就不是这样的策略了。

Root CAOCSP地址CDN提供商访问质量
DigiCert(Global)ocsp.digicert.comVerizon正常
DigiCert(China)ocsp.dcocsp.cn阿里云非常好
Sectigoocsp.sectigo.comStackpath
Let’s Encryptocsp.int-x3.letsencrypt.orgAkamai阻断
Buypassocsp.buypass.comAkamai正常
GlobalSignocsp.globalsign.comCF/Fastly/阿里云非常好

国内这个特殊的政策条件下,世界主流的CDN都没办法设置边缘节点,所以在选择证书的时候有条件还是考虑一下OCSP在国内的适应性吧。


三、OCSP Stapling

当然前面提到OCSP不可及或者请求OCSP造成的延迟,这种也不是没有解决方案,OCSP Stapling就是因此而生的。我之前在配置的时候因为证书链没有配置全一直没生效,就写写NGINX的配置方法吧。

导出证书链

Chrome可以点击SSL的小锁打开证书详情,在证书路径除了我们的站点证书外证书链的多个证书即为我们所需要的。

2020-11-26_15-29-32-1

双击要导出的证书,选择详细信息,点击复制到文件,选择Base64编码,一路下一步把证书链的证书全部导出。

2020-11-26_15-33-03-1

把下载下来的证书按照SubCA在上、RootCA在下的顺序组合起来,直接用记事本或者NPP复制进去即可。

开启OCSP

开启OCSP只需要加三段代码,其中ssl_trusted_certificate指向你刚才导出的证书链:

OCSP Stapling

Shell

123ssl_stapling               on;ssl_stapling_verify        on;ssl_trusted_certificate    /www/cert/fullchain.pem;

如图加在证书配置处即可,如果是Let’s Encrypt的证书因为不校验证书链无需指定ssl_trusted_certificate,只加前两句即可。

2020-11-26_15-43-38-1

加好之后可以去MySSL进行测试,一般而言OCSP是在触发了OCSP请求之后再访问才会生效,所以可以测两次再看是否有效。

最近有朋友说即使启用了OCSP Stapling苹果的Apple OCSP策略依然会去验证OCSP……不过配置一下总比不配置强吧,说不定以后这个策略就会改变了,毕竟这也是泄露用户访问信息的一个渠道。

定时任务刷新OCSP响应推荐参考饭饭大佬的博客:
Nginx开启OCSP以解决Let’s Encrypt证书被DNS污染访问缓慢 – 饭饭’s Blog


四、随便说说

经过这件事不得不承认国内激烈的互联网竞争催生了很多人性化的服务,也难怪Let’s Encrypt在公布初期一呼百应,海外的免费SSL市场很少见亚信和环洋这样的搅局者,在短暂的免费后剩下的都是限制重重的Trail。

最后就用上面的一张图作为总结,如果你需要长期2020-12-01_14-48-56-1使用的单域名证书,亚信和阿里的都是极好的选择,临时便捷Buypass也是很不错的;如果需要通配符的话更加推荐AllinSSL的,相对LE而言不仅根证书更大众化而且包含了对IP证书的支持。同时这两种证书的根证书DigiCert和Sectigo因为受众广泛,360的根证书计划已对其收录,在国内使用是没有什么后顾之忧的。

当然在最后还是得对亚信和环洋这两家公司表示感谢,放眼海外才知道这样的免费资源实在难得;其他的就不说了,在这里选择适合你的就是最好的。

上一篇:CentOS6.5 安装、配置并启动SSH远程访问具体操作步骤
下一篇:关注微信公众号获取用户信息