2

openssl コマンドでファイル.pemとファイルを使用して、MacOS ElCaptain で p12 ファイルを作成しました。.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?)

私は何が欠けていますか?

4

1 に答える 1

4

curlは約 12 種類の SSL/TLS 実装をサポートしており、証明書とキーの提供方法は、ビルドで使用されている実装によって異なります。curl -V(アッパー ヴィー) を使用して確認します。推測ですが、わかりませんが、MacOS ビルドは SecureTransport を使用しています。私の角を曲がったUbuntu 14.04.4の(標準)パッケージは、間違いなくOpenSSLを使用しています。

man ページによると、私の Ubuntu での実験で確認されたように、このビルドでは PKCS12 ではなくPEM 形式のファイルが必要です。これらはへの入力openssl pkcs12 -exportとして使用したのと同じ 2 つのファイルです。または、それらを連結してそのまま使用することもできます--cert(PEM 形式は各ブロックを個別にマークするため、これは機能します)。もうそれらを持っていない場合は、openssl pkcs12 -in foo.p12 -out foo.pem(つまり OMIT -export)を使用して元に戻すことができます。

于 2016-10-21T18:43:03.243 に答える