openssl验证不使用GeoTrust证书

时间:2015-03-04 18:42:51

标签: ssl https openssl

我有新购买的GeoTrust域名证书和匹配的CA文件,并希望使用openssl进行验证。

openssl verify -verbose -purpose any 
-CAfile /full/path/sub.domain.com-geotrust.crt  /full/path/sub.domain.com.crt

从此页面:https://secure.marumoto.us/motowiki/tiki-index.php?page=Verify+a+Certificate+Chain

链中每个证书的颁发者应与链中下一个证书的主题相匹配。例如,myserver.mydomain.com.cert的颁发者应该匹配myintermediate_ca.cert的主题,myintermediate_ca.cert的发行者应该匹配myroot_ca.cert的主题。您可以使用以下命令查看.pem或base64格式的证书。

来自

openssl x509 -text -in sub.domain.crt and
openssl x509 -text -in sub.domain-geotrust.crt (CA root file)

sub.domain.com
Subject:    OU=GT44865949, 
            OU=See www.geotrust.com/resources/cps (c)15, 
            OU=Domain Control Validated - QuickSSL(R), 
            CN=sub.domain.com
Issuer:
            commonName                = GeoTrust DV SSL CA - G4
            organizationalUnitName    = Domain Validated SSL
            organizationName          = GeoTrust Inc.
            countryName               = US        

Intermediate:        
Subject:
            commonName                = GeoTrust DV SSL CA - G4
            organizationalUnitName    = Domain Validated SSL
            organizationName          = GeoTrust Inc.
            countryName               = US

Issuer:
            commonName                = GeoTrust Global CA
            organizationName          = GeoTrust Inc.
            countryName               = US

Root:
Subject:
            commonName                = GeoTrust Global CA
            organizationName          = GeoTrust Inc.
            countryName               = US
Issuer:
            organizationalUnitName    = Equifax Secure Certificate Authority
            organizationName          = Equifax
            countryName               = US            

看来我的Issuer和Subject字段匹配正确,但我在openssl中收到以下错误:

错误20在0深度查找:无法获得本地颁发者证书 /full/path/sub.domain.com.crt:/ OU = GT44865949 / OU =参见www.geotrust.com/resources/cps(c)15 / OU =域控制验证 - QuickSSL(R)/ CN = sub。 domain.com 错误20在0深度查找:无法获得本地颁发者证书

我想在不同的子域使用此类和类似的GeoTrust证书在一个宁静的网址上进行双向SSL身份验证,但证书不会对使用它们发出的CA文件进行“openssl verify”验证。任何建议都非常赞赏。

3 个答案:

答案 0 :(得分:1)

根据讨论,允许openssl查看整个验证链:使用GeoTrust CA中间体和根。

openssl应该使用包含PEM格式的所有3个CA的CADir参数运行。 GeoTrust的实际根目录可以从您喜欢的浏览器中提取,也可以在这里:filedropper.com/geotrustglobalca。

配置实际服务器时,只需确保在服务器上发送中间体Hello,某些站点不会这样做并破坏没有缓存中间体的客户端。

答案 1 :(得分:1)

RomanK's answer开始,您可以从root certificate store获取GeoTrust全球CA.他们在那里列出了许多主要/通用/全球证书,因此请确保为您的中间证书获得正确的证书。

答案 2 :(得分:1)

根据链显示,根证书不是自签名的。它显示了它由Equifax发行。 Openssl将继续提供错​​误“找不到本地颁发者证书”,直到获得自签名根证书。当它遇到自签名的根时,它就能够验证证书链是否完整。