web-dev-qa-db-ja.com

openssl smimeを使用してS / MIME暗号化メールを復号化する方法は?

どういうわけか、この基本的な質問に対する答えが見つからないようです。暗号化されたS/MIMEメールを受信しましたが、openssl smimeを使用して復号化したいと思います。ただし、正しい形式でキーを提供できないと思います。これは私がやったことです:

  • 電子メールメッセージ(生のテキスト形式)をsmime-ok.txtとして保存しました
  • OS Xキーチェーンからキーをmyself.p12としてエクスポートしました
  • OS Xキーチェーンから公開証明書をmyself.cerとしてエクスポートしました

それから私は試しました

openssl smime -decrypt -in smime-ok.txt -recip myself.p12

しかし、私は得る

unable to load certificate
37740:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.Apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.7/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

私は-inkey myself.p12 -recip myself.cerやその他のバリエーションも試しましたが、違いはありませんでした。パスワードの入力も求められないため、キーファイルが読み取られないか、正しく読み取られないようです。

基本的にopenssl smimeの使い方を誤解しているのではないかと思います。

4
not2savvy

実際、openssl smime-recip入力でPEM形式を想定していますが、p12ファイルはPKCS12形式です。これは、p12ファイルをpemファイルに変換する方法です。

openssl pkcs12 -in myself.p12 -out myself.pem

その後、次のように電子メールを期待どおりに復号化します。

openssl smime -decrypt -in smime-ok.txt -recip myself.pem
3
not2savvy