背景:
问题:
连接的证书链似乎是正确的,但验证失败。
openssl s_client myhost:port
Run Code Online (Sandbox Code Playgroud)
显示证书链和颁发者-主体对通过链正确排列,但是:
verify error:num=19:self signed certificate in certificate chain
Run Code Online (Sandbox Code Playgroud)
openssl 不接受根 CA 证书,尽管默认情况下可以在 Ubuntu 服务器信任库中找到它。
具体来说:
AddTrustExternalCARoot.crt从 COMODO 收到的每封电子邮件以及
/etc/ssl/certs/AddTrust_External_Root.pem哪些链接
/usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
是相同的。
这里有什么问题?
我在 Mac OS X 上使用 SVN。通常,当我从 SourceForge 中查看某些内容时,我会看到:
$ svn checkout https://svn.code.sf.net/p/cryptopp/code/trunk/c5 cryptopp-ecies
Error validating server certificate for 'https://svn.code.sf.net:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: *.code.sf.net
- Valid: from Thu, 16 Apr 2015 00:00:00 GMT until Sun, 15 May 2016 23:59:59 GMT
- Issuer: GeoTrust Inc., US
- Fingerprint: 1f:7b:73:d5:cf:71:18:76:d5:23:f3:07:c9:2f:f5:4a:52:67:0f:68
Run Code Online (Sandbox Code Playgroud)
OpenSSLs_client显示最顶层的 CA 是Equifax 安全证书颁发机构:
$ openssl s_client -connect svn.code.sf.net:443 -showcerts …Run Code Online (Sandbox Code Playgroud)