获得"卷曲:(58)无法使用客户证书"使用p12文件调用

时间:2016-10-21 16:46:51

标签: ssl curl p12

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

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 个答案:

答案 0 :(得分:4)

curl支持大约十几种不同的SSL / TLS实现,以及如何提供证书和密钥,具体取决于构建中使用的实现。使用curl -V(上部vee)进行检查。我猜,但不知道,MacOS构建使用SecureTransport;我的角落Ubuntu 14.04.4上的(标准)软件包绝对使用OpenSSL。

根据手册页并通过实验在我的Ubuntu 上确认,此构建需要PEM格式文件,而不是PKCS12。这些是您用作输入openssl pkcs12 -export的两个文件,或者您可以将它们连接起来并将其用于--cert(这可以起作用,因为PEM格式分别标记每个块);如果你不再拥有它们,你可以使用openssl pkcs12 -in foo.p12 -out foo.pem(即OMIT -export)转换回来。