我最近从 Comodo 购买了免费的 SSL 证书。它附带了一个证书颁发机构捆绑文件,其中包含所有中间证书以及根证书。当我运行命令“openssl s_client -connect www.mydomain.com:443 -showcerts”时,它显示的证书路径如下所示:
depth=4 C = SE,O = AddTrust AB,OU = AddTrust 外部 TTP 网络,CN = AddTrust 外部 CA 根 验证返回:1
depth=3 C = US,ST = UT,L = 盐湖城,O = USERTRUST 网络,OU = http://www.usertrust.com , CN = UTN-USERFirst-硬件 验证返回:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO Certification Authority 验证返回:1
depth=1 C = GB,ST = 大曼彻斯特,L = Solr 福德,O = COMODO CA Limited,CN = EssentialSSL CA 验证返回:1
depth=0 OU = 域控制验证,OU = 免费 SSL,CN = www.mydomain.com 验证返回:1
但是,当我在任何浏览器中访问 www.mydomain.com 并查看服务器提供的证书时,它显示以下证书路径(取自 IE9 证书窗口):
- 科摩多
- EssentialSSL CA
- www.mydomain.com
请注意,链中的证书较少(深度为 2,而 openssl 命令为 4),并且根证书是 COMODO 证书,而不是 AddTrust 外部 CA 根证书。有人可以解释为什么浏览器显示的路径与 openssl 命令不同吗?
请注意,在这两种情况下,服务器提供的证书链都通过了验证(从 openssl 验证结果 0,浏览器中没有警告)。
最佳答案
IE9 将 comodo ca 作为其信任链中的受信任机构,因此不显示 comodo ca 的签名者。
OpenSSL s_client -showcerts 显示了整个证书链。
关于SSL 证书 - 浏览器中的证书路径不同于证书链文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9912037/