使用p12文件进行调用时,出现“curl:(58)无法使用客户端证书”的错误

3

我在我的MacOS El Captain上使用openssl命令,通过.pem.key文件创建了一个p12文件:

openssl pkcs12 -export -in <PEM_file>.pem -inkey <PRIVATE_KEY>.key -out <FILENAME>.p12

一切正常。我能够使用这个p12进行我的cURL调用。

但是当我在我的Ubuntu 14.04.5 LTS上使用相同的.pem和.key时,当我使用带有p12的cURL时,开始收到以下消息:

curl: (58) unable to use client certificate (no key found or wrong pass phrase?)

我错过了什么?
1个回答

5

curl支持约十几种不同的SSL/TLS实现,证书和密钥的提供方式取决于使用哪种实现构建。使用curl -V(大写V)进行检查。我猜测,但不确定,MacOS构建使用SecureTransport;我在Ubuntu 14.04.4上使用的(标准)软件包明确使用OpenSSL。

根据手册并经过我的Ubuntu实验确认,此构建需要PEM格式文件,而不是PKCS12格式。这些是您用作openssl pkcs12 -export输入的相同两个文件,或者您可以将它们连接起来并只使用--cert(这可以工作,因为PEM格式将每个块分开标记);如果您不再拥有它们,可以使用openssl pkcs12 -in foo.p12 -out foo.pem(即省略-export)进行转换。


谢谢,你救了我们的一天.. ;-) - ricky.tribbia
在我的情况下,我还需要更新curl到7.29以上的版本。 - fl4l

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接