Cloudflare在9月29日扔出一个消息,说自己要下场当公共CA,也就是证书颁发机构。申请已经递给了Chrome、苹果、微软和火狐的根证书计划,同时也跟GlobalSign签了最终协议,收购一张被广泛信任的根证书。目的很直接,等自己开始签发的时候,能覆盖尽量多的设备。官方还提了一嘴,想做最早提供后量子证书的CA之一,眼下证书还没开始发。
这事看着像大厂抢地盘,其实透露的是证书行业的走向,也戳中了不少运维和安全的日常痛点。
要聊清楚它为什么值得关注,得先搞明白浏览器凭什么信一张证书。你可以把证书看成网站的身份证,浏览器每次访问https站点,都会拿着这张证往上倒查。一路查上去,看它是不是由浏览器自己信任的那几个根证书签下来的。这条倒查的路径就是信任链,根证书是链条的起点,浏览器出厂时就把这些根预置好了。生活里也一样,你拿着派出所开的证明去办事,对方得先认派出所,才认你这份证明。浏览器和CA的关系就是这么一层。
想挤进这个名单并不容易。根证书计划背后是一整套审计、合规和密钥保护要求,私钥怎么存、多久轮换、出问题怎么吊销,条条都得过。门槛摆在那,全球能叫上号的公共CA就那么几家。
门槛高归高,落到一线用起来,真正让人头疼的是另一摊事。证书不是签完就完事,它有过期时间。Let's Encrypt的证书只有90天,一个季度一续,域名一多就容易漏。漏了不一定马上报错,等用户那边弹出红色的安全警告,业务已经断了。
排查的时候,不少人都敲过openssl s_client -connect 域名:443,看链子断在哪一段,或者用openssl x509 -noout -enddate -in cert.pem查剩余有效期。curl这边也常甩出一句certificate has expired,翻半天日志才反应过来是忘续了。
麻烦还不止续期。泛域名、IP证书、多套环境各挂一份,配置散落在不同机器上,谁改过、改到哪一步,全靠人记。CA哪天换根、换中间证书,手工改一遍就够呛。这种活技术含量不高,出错的代价却不小。
证书自动化运维这几年一直在推,ACME协议就是奔着这个去的,让签发和续期走程序,不靠人盯。lcjmSSL算是把这条路走得比较完整的一个。它接的是Let's Encrypt、Google Trust Services、ZeroSSL这些可信CA,多域名、泛域名、IP证书都能覆盖,申请、验证、部署整条链路自动跑,配合轻量化的API接口,配置也简单,不用在每个节点上折腾一套脚本。
对运维来说,这套东西的价值不在功能多花哨,而在于把一件容易忘、容易错、又必须做对的事,交回给程序。证书到期这种事,本来就不该反复发生。
Cloudflare想做CA,说明证书这块的竞争和重视程度都在往上走。签发这一环会越来越透明,也越来越自动。作为使用者,更该关心的是自己手里的域名证书,有没有人、有没有系统在踏实盯着。这个坑,踩过一次就够记很久了。