什么是根证书?

根证书是证书信任体系的起点,由根证书签发机构自己签发自己,没有上级。浏览器和操作系统内置了一批受信任的根证书,任何站点证书能否被信任,最终都取决于能否追溯到某张内置的根证书。

第 52 期介绍过,证书链从根证书出发,向下经由中间证书再到站点证书。根证书是这条链最顶端的证书,它由根证书签发机构(根 CA)自己签发自己,没有上级,因此也被称为信任锚。浏览器信任一张站点证书,本质是信任签发它的根证书。

根证书之所以能成为信任锚,是因为浏览器和操作系统内置了一份受信任的根证书列表。这份列表由各平台的根证书项目维护:Mozilla、苹果、微软、谷歌各自运行一套根证书项目,制定 CA 加入、审计和移除的标准。一张根证书要进入列表,其背后的 CA 需要通过严格审核,并接受持续监督;不符合要求的根证书也会被从列表中移除。

根证书的私钥极为关键,一旦泄露,攻击者可以签发任意域名的证书,整个信任体系都会受到破坏。因此根 CA 通常把根证书的私钥离线保存在安全的硬件中,日常签发工作交给由根证书签发的中间 CA 完成,中间证书出问题时可以单独撤销,不必动根证书。