我正在运行Windows Vista并尝试通过https连接以多部分形式上传文件,但我在使用本地颁发者证书时遇到了一些问题.我只是想弄清楚为什么它现在不起作用,并在此之后再回到我的cURL代码.我正在运行命令:
openssl s_client -connect connect_to_site.com:443
Run Code Online (Sandbox Code Playgroud)
它给了我VeriSign公司的数字证书,但也发出错误:
Verify return code: 20 (unable to get local issuer certificate)
Run Code Online (Sandbox Code Playgroud)
什么是本地发行人证书?这是我自己电脑的证书吗?有没有解决的办法?我试过使用-CAfile mozilla.pem文件,但仍然给我同样的错误.
Jan*_*bel 90
我遇到了同样的问题,并通过将路径传递到存储CA密钥的目录来解决它.在Ubuntu上它是:
openssl s_client -CApath /etc/ssl/certs/ -connect address.com:443
Run Code Online (Sandbox Code Playgroud)
解决方案:
您必须显式添加参数-CAfile your-ca-file.pem.
注意:我也试过-CApath在另一个答案中提到的param ,但是对我来说不起作用.
说明:
错误unable to get local issuer certificate表示openssl不知道您的根CA证书.
注意:如果您的Web服务器包含更多域,请不要忘记添加-servername your.domain.net参数.此参数将"在ClientHello中设置TLS扩展名服务器名称".如果没有此参数,响应将始终包含默认SSL证书(不是与您的域匹配的证书).
| 归档时间: |
|
| 查看次数: |
134035 次 |
| 最近记录: |