每当我尝试使用OpenSSL使用以下命令连接到Google(或任何其他站点)时:
s_client -connect google.com:443 -showcerts
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
.....
验证返回码:20(无法获得本地颁发者证书)
我确实安装了正确的CA. 我也尝试导出CA并将其与-CAfile一起使用,但我仍然得到相同的错误.
我使用certmgr.msc将CA导出为PKCS#12.然后我使用以下方法将它们转换为.pem文件:
OpenSSL> pkcs12 -in D:/Certs/RootCertsNewu.pfx -clcerts -nokeys -out D:/Certs/Roo
tCertsNew.pem
Run Code Online (Sandbox Code Playgroud)
使用它我试图连接:
OpenSSL> s_client -connect google.com:443 -CAfile D:\Certs\RootCertsNew.pem
Run Code Online (Sandbox Code Playgroud)
但我得到了和以前一样的回应.我还读到,这可能与中级CA有关,所以我用CA和中间CA创建了一个.pem文件.那也行不通.有人能帮我吗?
此外,验证进展似乎始于GeoTrust,而不是Equifax.
OpenSSL> s_client -connect google.com:443 -showcerts -CAfile D:\Certs\google-ca.
pem
Loading 'screen' into random state - done
CONNECTED(0000017C)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Run Code Online (Sandbox Code Playgroud)