为何同一证书链可被两个不同根CA验证?
问题解答:同一证书链为何能被两个不同根CA验证?
操作场景回顾
- 导出google.com证书链:
GTS Root R1→GTS CA 1C3→*.google.com - 将
GTS CA 1C3和*.google.com证书存入inter.cer - 用单独导出的
root_ca.cer(仅含GTS Root R1)验证,结果正常:
% openssl verify -CAfile root_ca.cer inter.cer inter.cer: OK
- 用标注为「QuoVadis Root CA 2」的
quovadis.cer验证,同样成功:
% openssl verify -CAfile quovadis.cer inter.cer inter.cer: OK
原因解析
核心原因就是你补充的信息:quovadis.cer不是单一根CA证书,而是包含多个根CA证书的集合文件,其中恰好包含了能完成验证的GTS Root R1根证书。
OpenSSL的verify命令在使用-CAfile参数时,会加载文件内的所有CA证书,逐一尝试构建有效的验证路径。只要文件中存在能匹配目标证书链的根CA,就会返回验证成功的结果。
你看到的quovadis.cer虽然表面标注的是QuoVadis Root CA 2,但文件内部还附带了GTS Root R1,因此它和单独的root_ca.cer一样,能完成对inter.cer的验证。
内容的提问来源于stack exchange,提问作者robocop
相关产品推荐
相关产品推荐

