多域SSL证书一定会退出历史舞台2021年12月9日

多域SSL证书就是绑定多个域名的SSL证书,现在许多CA都已经支持绑定多达1000个域名,这的确方便了有许多域名需要部署SSL证书的应用,如CDN厂商的https支持,还有云服务提供商的上千台服务器的SSL证书。笔者看到的某某云的官网SSL证书部署的SSL证书绑定了将近300个域名,并且绝大数是通配证书。支持所有子域的通配证书如*.cersign.com可以用于所有cersign.com子域的网站部署同一张SSL证书,多域证书中可以含单域证书和通配证书,一张这样的SSL证书就可以满足所有网站系统部署SSL证书的需要了,这视乎已经成为了大网站的标配和首选。但是,笔者认为:这种部署SSL证书的方式不可取,多域SSL证书迟早会退出历史舞台,并且应该早点尽快退出。

笔者为何得出这样的结论,这还得从为何出现了多域SSL证书说起。大家都知道,Web服务器是支持一个IP地址部署多个网站的,大家都可以共用一个80端口来访问,因为http协议是带上了主机头信息的,即使是同一个端口访问,但是可以根据域名不一样就可以正确地访问不同的网站。但是,网站部署了SSL证书后,所有网站就共用一个443端口来实现https访问,但是由于https协议的SSL握手信息中并没有带上主机头信息,这样就不知道该同哪个网站实现https加密了,怎么办?这时候,多域SSL证书就出现了,把要部署SSL证书的网站的所有域名全部含在一张SSL证书中,无论哪个域名来访问,都可以用这张SSL证书来实现握手加密。

但是,这个解决方案意味着一个IP地址仍然只能部署一张SSL证书,如果要增加域名,增加SSL证书则又不行了,这就出现了新的解决方案—RFC 6066 SNI (Server Name Indication, 服务器名称指示),让TLS协议支持握手时像http协议一样带上主机头信息,这就可以不受限制的在一个IP地址上启动N个Web服务和每个Web服务都部署一张独立的SSL证书,SNI标准到现在已经10年了,所有客户端浏览器和服务器软件都已经支持SNI了,除非10年前还没有升级过的不安全的系统。

也就是说,由于SNI的出现和普及支持,原先产生多域SSL证书存在的技术基础已经不存在了,多域SSL证书是当时技术局限的产物,现在应该退出历史舞台了,这是我得出这个结论的主要理由之一。

但是,通过各大浏览器对http访问显示为不安全的共同努力,现在https已经成为了必须,多域SSL证书得到了有N多服务器需要部署SSL证书的云服务提供商和互联网公司的青睐,一张SSL证书绑定几十个域名是常态,绑定几百个域名也不少见。难道存在就合理?还是让笔者给大家算一笔经济账,看看部署多域SSL证书是否划算。

一张单域名SSL证书包括通配单域SSL证书,都是只绑定一个域名的证书,对于常用的RSA 2048位SSL证书来讲,单域SSL证书文件大小在3K以内,如上图所示,而一个绑定218个域名的SSL证书大小为9K,一个绑定1000个域名的SSL证书大小为39K,浏览器访问网站时的https握手需要浏览器从服务器下载这张SSL证书(公钥),对于每日访问量高达1000万次的大网站,则每次下载绑定218个域名的SSL证书的流量是比下载绑定一个域名的SSL证书流量多出6K,乘以1000万次再乘以365天,每年多浪费了2.11G流量,按每G每年8万元计算,则每年因为使用多域SSL证书而多支出的带宽费用高达16.88万元!而且不仅仅是浪费流量,而且也多耗服务器资源,增加访问延时和影响用户体验。经测试,绑定5个域名以内在证书大小上是没有太多变化的。所以,笔者认为不应该部署绑定超过5个域名的多域SSL证书,以保证用户体验、减少带宽浪费和服务器资源浪费。

我再给大家算一下安全帐,云服务提供商喜欢用绑定通配域名的多域证书无非是可以用这一张SSL证书搞定所有网站应用,部署虚拟机时也可以快速复制镜像而实现快速部署。但是,这里面有一个巨大的安全隐患,如果这几百上千台服务器都用这一张SSL证书,如果这张SSL证书私钥泄露而必须吊销这张证书,则这一千台服务器的SSL证书全部需要重新部署新的证书,这个替换工作量就大了,而且还有可能影响服务器的正常运行。笔者就此问题专门写了一篇博文《为何SSL证书部署必须“一机一证”》,就是专门讲这个问题的,为了每台物理服务器的安全,必须为每台物理服务器独立使用一张独立私钥的SSL证书,这样才不至于其他一台服务器被黑而影响其他服务器的部署的SSL证书的正常使用。这个安全运维帐也要算,算下来当然是应该“一机一证”,那么这个“一证”就是只需要一张单域证书或者一张通配证书了。也就是说,从安全运维的角度也不需要使用多域SSL证书,这是理由之三。

现在,大家应该能理解我的观点了,从多域SSL证书的产生背景来看,技术上已经彻底解决了需要多域证书的问题,多域证书已经没有了存在的技术基础。从节省带宽和提升用户访问速度来看,其实使用多域证书太浪费带宽,也由于文件较大而会影响下载速度而降低用户体验,为了节省带宽费用和提升用户体验不应该部署多域证书。而从安全运维来看,更不应该把一张多域证书部署在多台服务器上,非常不安全并且大大增加运维人力成本。从这3个方面来看,我相信:多域SSL证书一定会因为被市场自然淘汰而退出历史舞台。

点击 这里 下载此文 (PDF格式,有全球信任和全球法律效力的数字签名和时间戳,版权所有,抄袭违法必究!转载请注明:转载自零信CEO博客)