我有新购买的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”验证。任何建议都非常赞赏。
答案 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将继续提供错误“找不到本地颁发者证书”,直到获得自签名根证书。当它遇到自签名的根时,它就能够验证证书链是否完整。