网络常识-我的电脑啥时安装了证书
当你访问百度等公网网站时,浏览器能够自动信任其SSL证书,无需你手动安装CA证书,核心原因是:浏览器(或操作系统)在出厂/安装时,已经预先内置了一批全球公认的“根CA证书”,而百度的SSL证书正是由这些被内置信任的根CA机构签发的。
具体过程可以拆解为以下几步:
1. 公网CA机构的“根证书”被预装到浏览器/系统中
全球有一批经过严格审核的权威CA机构(如DigiCert、GlobalSign、Let’s Encrypt等),它们的“根证书”(根CA的公钥证书)会被浏览器(Chrome、Firefox、Edge等)和操作系统(Windows、macOS、Android、iOS等)预先内置。
这些根证书的预装过程是自动的:
- 浏览器在开发时,会由厂商(如谷歌、微软)将这些根CA的证书打包进安装包;
- 操作系统(如Windows)会通过系统更新,定期维护这份“信任列表”(添加新的可信CA,移除被吊销的CA)。
你可以在浏览器的设置中查看这些预装的根CA证书,例如:
- Chrome:设置 → 隐私和安全 → 安全 → 管理证书 → “受信任的根证书颁发机构”标签页。
2. 百度的SSL证书由这些可信CA机构签发
百度的域名(如baidu.com)使用的SSL证书,并不是自己生成的,而是向上述权威CA机构申请并由其签发的。
签发过程中,CA机构会验证百度的域名所有权,然后用自己的“中间CA证书”(由根CA签发)给百度的服务器颁发SSL证书。最终形成一个“证书链”:
百度的服务器证书 → 中间CA证书 → 根CA证书
3. 浏览器通过“证书链”自动验证信任
当你访问百度时,百度的服务器会向浏览器发送它的SSL证书(包含证书链)。浏览器会做以下验证:
- 检查百度的证书是否由某个“中间CA”签发;
- 检查这个“中间CA”是否由某个“根CA”签发;
- 最终追溯到的“根CA”是否在浏览器预装的“信任列表”中。
如果整个链条完整,且根CA在信任列表中,浏览器就会自动信任百度的证书,无需你手动操作。
为什么内网证书需要手动安装?
内网自建的CA机构并未被浏览器/系统预装(因为它们不是全球公认的权威机构),所以当你访问内网网站时,其证书的根CA不在信任列表中,浏览器会提示“证书不受信任”。这时候就需要你手动将内网CA的根证书导入浏览器/系统的“信任列表”,才能让浏览器认可内网证书。
总结来说:
公网网站的证书之所以无需手动安装CA,是因为它们的签发机构(根CA)早已被浏览器/系统“默认信任”(预装根证书);而内网自建CA未被预装,因此需要手动添加信任。