付费HTTPS证书是智商税吗
涛叔早期互联网协议都是明文,网络随便一个中间节点都可以监听甚至篡改链路上所有的通信内容。坏人越来越多,通信加密也就刻不容缓。后来人们设计了TLS(之前叫SSL)加密通信,而加密过的HTTP协议又叫HTTPS。TLS系统使用非对称算法交换加密用的密钥。非对称算法有公钥和私钥之分。如果我们从网上得到张三的公钥,怎么才能确认这个公钥一定是张三的呢?这就需要公钥基础设施(Public Key Infrastructure),简称PKI。简单说就是找人做公证。给张三做公证的人或者地方叫CA,它们出具的证明就是证书。公证自然是要付费的。现在出现了一些不收费的CA。大家都在纠结免费的证书到底能不能用。今天就谈谈我的思考。
证书的作用就是验证所有人的身分,分三种等级:域名验证(Domain Validation,DV)、组织验证(Organization Validation,OV)和扩展验证(Extended Validation,EV)。
- DV是最简单的一级验证,只验证域名的控制权。也就是说,只要你能证明拥有某域名,CA就可以为你签发证书。现在市面的免费证书都是这一种。这种证书上只会显示域名信息。
- OV是在DV验证的基础上还要验证组织信息,需要提供政府颁发的组织证件来证明身分。这种证书除了会显示域名信息外,还会显示组织所有的国家地域和组织名称等信息。大家见到的证书多数是这一类。
- EV是在OV验证的基础上还会验证公司的地址和电话。浏览器会在使用EV证书的网站的地址栏额外展示组织的名称,整个地址栏也会显示成绿色。用户打开网站看到公司名就能确保自己打开的是正确的网站。这是论证级别最高的证书,当然也是最贵的。
那问题来了,我们要选用哪样的证书呢?
首先,EV证书不用考虑了,因为现在的浏览器都不再为EV证书展示组织信息(在Chrome上用户需要占击域名左边的锁打开证书信息页面才能看见)。也就是说从用户角度看,EV证书跟OV证书基本没有区别了。如果现在还用EV证书,那一定是被忽悠了。关于这个话题可以看我的另一篇文章SSL EV 证书之死。
然后说说OV证书。这是市面上最主流的证书,可以证明网站所有者的身份(一般是公司名)。但这些信息更难查看,需要点击小锁🔒,再点击证书(Certificate)再点击详情(Detail),才能看到这些信息
就算用户看到了组织名称是「智者四海(北京)技术有限公司」,那他能搞明白这家公司跟知乎的关系吗?估计不能。所以说,从这个角度上讲,OV证书也是没有必要的。
最后说一下DV证书。很多大网站都已经使用DV证书了,比如 Stack Overflow
DV证书只验证域名。用户只需确保自己访问的是正确的域名,就不会被钓鱼网站欺骗。所以说,免费证书并非只能用于小网站。像 Stack Overflow 这样的顶级网站也是可以用的。
那为什么还有人用付费的 OV 证书呢?
一方面是惯性。大家习惯了付费,对免费的东西普遍持怀疑态度。另一方面是免责,出了问题可以找供应商。
还有一个问题就是免费证书的一些限制。比如 Let’s Encrypt 签发的证书只有三个月的有效期,如果想使用,就得集成ACME客户端,这有一定的改造成本。但如果你的服务在云上,可以使用 AWS 或者 Cloudflare 签发的 DV 证书,同样不要钱。
最后提一下 Let’s Encrypt 被「封禁」的问题。证书一旦签发是不能收回的。如果证书被窃取,只能通过黑名单的形式注销。一些浏览器(比如苹果的 Safari)会通过在线证书状态协议(OCSP,Online Certificate Status Protocol)来检查证书有没有被吊销。而 Let’s Encrypt 的 OCSP 服务器所使用的 Akamai 的 CDN 节点有部分被国家防火墙误杀了,导致苹果用户在打开站点时候会卡顿两秒钟。这个问题可以使用 ocsp stapling 技术来解决。
总结一下,现在付费HTTPS证书基本可以看成是智商税了。尤其是在移动互联网的大环境下,用户都在用APP,根本看不到域名,更看不到证书,使用DV证书完全足够。