使用curl和没有密码的证书

Stu*_*art 7 ssl curl

我有自己的CA和客户端证书,我使用正常格式成功使用cURL:

curl --cacert /etc/myca.crt --cert /etc/myclient.pem:mypassword --cert-type PEM --get https://myhost.com
Run Code Online (Sandbox Code Playgroud)

现在,出于此问题范围之外的原因,我拥有相同的客户端证书,但密码已使用openssl删除.使用openssl我已经验证了新证书是正确的,我可以使用它来使用cURL以外的应用程序建立SSL连接,但我无法使用cURL.

如果我没有输入密码:

curl --cacert /etc/myca.crt --cert /etc/myclient.pem --cert-type PEM --get https://example.com
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说"卷曲:(58)无法使用客户端证书(没有找到密钥或错误的密码短语?)"

我也尝试过:

curl --cacert /etc/myca.crt --cert /etc/myclient.pem: --cert-type PEM --get https://example.com
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的错误.

我在Perl脚本中调用cURL,所以我需要找到一种不会提示输入密码的方法.我在RHEL 5上使用cURL 7.15.5.

谢谢.

小智 6

您可以使用该--pass开关:

--pass <phrase>                  (SSL/SSH) Passphrase for the private key
Run Code Online (Sandbox Code Playgroud)

要传递空密码,您可以使用:

--pass ''
Run Code Online (Sandbox Code Playgroud)