openSSL证书-浏览器中的证书路径不同于证书链文件



我最近从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认证机构验证返回:1

depth=1 C=GB,ST=Greater Manchester,L=Salford,O=COMODO CA Limited,CN=Essential SSL CA验证返回:1

depth=0 OU=域控制已验证,OU=免费SSL,CN=www.mydomain.com验证返回:1

然而,当我在任何浏览器中访问www.mydomain.com并查看服务器提供的证书时,它会显示以下证书路径(取自IE9证书窗口):

  1. 科莫多
  2. 重要SSL CA
  3. www.mydomain.com

请注意,链中的证书较少(深度为2,而openssl命令的深度为4),并且根证书是COMODO证书,而不是AddTrust外部CA根证书。有人能解释一下为什么浏览器显示的路径与openssl命令不同吗?

注意,在这两种情况下,服务器提供的证书链都通过了验证(验证openssl的结果0,浏览器中没有警告)。

IE9将comodo ca作为其信任链中的受信任机构,因此不显示comodo ca的签名者。

OpenSSL s_client-showcerts显示了整个证书链。

最新更新