为什么HTTPS的证书那么贵?以及为什么可以免费取得?

所谓的 其实,指的是 HTTP over TLS/SSL,SSL 的意思是,Secure Sockets Layer,也即安全套接字层,是网景公司发明的一种传输层安全协议。因为对于网络信息基础架构太过重要,这个协议最后被国际标准化组织,标准化为 TLS,也即 Transport Layer Security,传输层安全协议,是 SSL 的后继者,从SSL 2.0 开始,后面一般不再称为 SSL 3.0,而称为 TLS 1.0,而 2016 年的互联网,主流都将往 TLS 1.2 以上发展。

HTTP 是一种基于文本的协议,在传输过程中,容易被嗅探,更有甚者,会被篡改,安全性较差。使用了传输层安全协议后,通信双方就会构建加密通信信道,在这个基础上,再进行 HTTP 通信,所以是 HTTPS,同理,也会有 FTPS, SMTPS 等等。不过最常用的,常见的,还是 HTTPS。

要实现 HTTPS,证书是必不可少的组成部分。一般,证书都会部署在网站等网络服务的服务器端。证书的实质,是一个公私钥对,其内部原理,是一种非对称加密算法。最常见和常用的这种算法是 RSA。由于这种算法、原理都是透明的,并且开放的,所以,任何人都可以随意去制作公私钥对,所以,在通信双方进行通信时,除了必须要有公私钥对这个必要条件,还要知道,当前使用的公钥,是否就是目标通信方所公布的。

从目前现状来看,作出这个判断,并不容易,也没有什么可靠的办法。实际采用的办法是,采用国际上具有公信力的机构来认证这些公私钥是否是目标通信方。这种具备公信力的机构,就叫证书颁发机构,英文是 CA,Certificate Authority。顶级的证书颁发机构,叫 Root CA,底下还设有下级分支机构。分支机构视授权不同,有些也具有证书颁发的能力。

每一张有效证书,都带有自己的颁发机构的信息,也是一张证书,这个证书还带有自己的颁发机构,一直上溯到顶级证书颁发机构,这个叫做证书链。为了帮助快速安全验证通信目标方的证书真伪,顶级证书颁发机构的证书,都会预置到操作系统或者浏览器或者客户端的内部,随软件分发,一起分发到终端用户,这样在进行加密通信前,只要上溯证书链,就可以判定当前证书是否真实有效。

从上述原理过程来看,公私钥对,人人都可以自己随便建立,甚至连证书也可以随便造出来,但是想让世界上最广大的用户都能自动认可这个证书,需要在全世界最广泛的操作系统里和浏览器里去预置证书颁发机构的顶级证书,这个就不是任何人随便可以构造出来的。

由此,就解释了,为什么 HTTPS 证书为什么这么贵。一张证书的制作成本,其实约等于零,但是证书的用户需要分摊这些流程中提到的具有公信力的机构的运作成本。包含但不限于:

审核 ,验证 CSR 成本,支持成本,法律成本(保险费用,担保费用)
要进入各个浏览器的根证书列表,WebTrust 年度审计费用,是很大的开销
一些浏览器厂商还会对植入根证书列表的 CA 收费
基础设施开销,CRL 和 OCSP 服务器成本
验证 CSR:就是提交证书申请后,CA要做多项验证,越是高级的证书(比如EV)验证越麻烦。不固定开销,有些要花费很多人力和时间来完成。
CA链费用:新开的CA公司要等5-10年,才会被普遍信任,才能广泛进入根证书链。要想加快点,就得给别的大牌CA公司掏钱,买次级证书。
——以上内容,援引自知乎。

那么,既然这么多成本,为什么 HTTPS 证书,又可以免费取得呢?这个,就没有太一致的说法,我理解的是,证书的认证,其实是分级的,一般的免费的证书,都是 DV,Domain Verification,域名验证,也即,在通信的时候,只能保证客户访问的域名,和域名带有的证书,确实是一致的,再进一步的信息就都没有了。如果,对域名的记忆不准确,可能也会遇到风险,毕竟域名只是一个字母串,有些是单词,有些连单词也不是,记错的概率还是有的。而且就算记准确了,域名的持有者发生了变更,也不是立刻就可以得知的。所以,证书认证的还有一些高级的形式,比如 EV,Extended Verification,扩展验证,这种级别的证书,一般都不会免费,它就可以提供比如,域名的持有者到底是谁的验证,这样,多重信息吻合下,用户就可以更加确定通信的目标方,就是自己期望的那一个。

随着互联网的发展,越来越多的信息开始电子化,各种类型的交易开始网络化,网络通信安全,越来越重要,以至于,都快成了互联网的基石,这个时候,有越来越多人受惠于加密通信,或者,受制于加密通信,这个时候,他们就有动机出来,让这个东西全面化和免费化,以加速互联网通信加密化的进程,当然,这里可能也免不了一些伟大的人类的使命感。在他们的资助下,让 DV 这种低级证书全面免费化,就开始逐步成为现实。甚至有些推动者,正是证书颁发机构本身,让更广大的用户体验自己提供的基础服务,在此基础上,提供更优质的增值服务,也算是互联网时代下一种典型的营销手段。

综上,我们目前确实有了很多选择来取得免费的证书。当然,这里也是有点鱼龙混杂的,甚至有居心叵测者,怀揣不良的目的,来免费提供证书,所以,大家如果需要部署 HTTPS 证书的话,还是要擦亮眼睛,选大厂,名牌产品,不要被一般的小店给骗了。