Openssl "verify error:num=20:unable to get local issuer certificate" on Mac

Openssl "verify error:num=20:unable to get local issuer certificate" on Mac

即使在我的 MacBook 上浏览了 Stack Overflow 上的几乎所有建议后,我也无法摆脱错误 "unable to get local issuer certificate"。

openssl s_client -connect www.google.com:443 -tls1 -showcerts -CApath /System/Library/OpenSSL
CONNECTED(00000003)
depth=2 /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
< Root and Intermediate Certificates >

我在复制 GeoTrust 根 CA 证书的地方使用以下命令时遇到同样的错误。

openssl s_client -connect www.google.com:443 -tls1 -CApath /usr/local/etc/openssl

这在深度 2 时失败了。我尝试了以下变体:

openssl s_client -connect www.google.com:443 -tls1 -showcerts -CAfile ~/Certificates.pem

此处 Certificates.pem 包含从 OSX 的钥匙串导出的所有根 CA 证书。

未能验证位于深度 2 的 *.google.com。

有什么办法可以消除该错误吗?由于使用 WildCard 证书,有任何特殊情况吗?

你的 OpenSSL 真的很旧,可能不会 support SHA256。不幸的是,这种哈希方法用于较新的证书中 - 您需要更新 OpenSSL。