这很可能是一个过时的“桥梁”,现在通向错误的地方。
此证书有两个有效的信任链。GeoTrust Global CA 有一个根证书,从 2002 年开始有效,在当前的 Windows/IE 和 Firefox 商店(和 Java)中;以及 Equifax Global CA 下该 CA 的“交叉签名”证书,如下所示:
Data:
Version: 3 (0x2)
Serial Number: 1227750 (0x12bbe6)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
Validity
Not Before: May 21 04:00:00 2002 GMT
Not After : Aug 21 04:00:00 2018 GMT
Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
Subject Public Key Info: <snipped: same as root>
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
X509v3 Subject Key Identifier:
C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.geotrust.com/crls/secureca.crl
X509v3 Certificate Policies:
Policy: X509v3 Any Policy
CPS: https://www.geotrust.com/resources/repository
<snip signature>
这显然是一个“桥梁”证书,通常在创建重命名(此处)或新 CA 根并希望临时利用旧 CA 根的现有信任时使用;Equifax 根从 1998 年开始有效,所以在 1999 年和 2000 年有很多客户会知道 Equifax 根而不是 GeoTrust 根。12年后它应该已经过时了。
运行“openssl s_client”确认 www.google.com.ua 在 SSL 握手中提供了自己的证书、Google Internet Authority G2 中间证书和桥接证书。IE、FF 和 Java 都足够聪明,可以忽略网桥并使用它们内部存储的 GeoTrust 根。curl 使用的 OpenSSL 不是,或者至少现在还不是;因此你必须告诉 curl 给 OpenSSL Equifax 根。(OpenSSL 1.0.2 版本,目前处于测试阶段,宣布在证书链验证领域进行了增强,我还没有详细研究过。)
编辑 3/13:我无法评论我的答案(!)所以在这里添加。正如我所说,GeoTrust Global CA 有两个证书:一个根证书和一个“桥”。
IE/Windows 和 FF DO有 GeoTrust 根;您已经在 IE 或 FF 的证书路径中看到它打开网页,或者您可以使用 InternetOptions/Content/Certificates/TrustedRoots 和 Tools/Options/Advanced/Certificates/Authorities 直接查看信任库。两者也都有 Equifax 根,但不要在这里使用它。IE 和 FF 都显示使用的认证路径,即使它与服务器发送的不同;这可能在一种方式中是“错误的”,但在另一种方式中可能是“正确的”。
根证书始终是自签名的;这对于成为根是必要的(并不总是用于锚,但将其放在一边)。GeoTrust 根证书是一个根。GeoTrust 网桥证书不是根证书,它链接到作为根的 Equifax 根证书。而且,Equifax 根是 curl + openssl 需要的一个。
编辑 9/01: https ://knowledge.geotrust.com/support/knowledge-base/index?page=content&id=AR1426&actp=search&viewlocale=en_US&searchid=1283360269668确认这是返回 Equifax 的桥梁证书。
更新 2017/03/28:首先,OpenSSL 1.0.2 确实添加-trusted_first了使用 GeoTrust 根(如果存在)并忽略网桥证书。其次,这现在更重要,因为 Equifax 根已从 Mozilla/NSS 信任库中删除,因此许多客户端使用的 curl-project CAfile,请参阅https://serverfault.com/a/841071/216633。