5

編集:私の問題は解決していませんが、新しい、よりエキサイティングな問題に取り組みました。
将来この質問に出くわした人を助ける洞察力のある人がいる場合に備えて、これをここに残します。

こんにちは、php から Outlook に暗号化されたメールを送信しようとしています。そのため、Outlook にインポートする証明書を生成する必要があります。openssl と付属の CA.pl スクリプトを使用して一連のキーを生成するのに問題はありませんでしたが、コマンドを実行して PKCS12 ファイルを生成して Outlook にインポートしようとすると、「demoCA」ディレクトリが見つからないというエラーが表示されます。このディレクトリはopensslの一部であり、openssl構成で参照されているようです...しかし、どこにあるのかわかりません。grep からスポットライトまで、さまざまな方法でドライブを検索しましたが (os x では、スポットライトが何かを見つけるとは思っていませんでした)、何も思いつきません。

私が実行しようとしていたコマンドは次のとおりです。

$ openssl ca -cert newcert.pem -ss_cert newcert.pem
Using configuration from /sw/etc/ssl/openssl.cnf
./demoCA/private/cakey.pem: No such file or directory trying to load CA private key
19918:error:02001002:system library:fopen:No such file or directory:bss_file.c:245:fopen('./demoCA/private/cakey.pem','r')
19918:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:247:

私は暗号化/SSLに関しては少し初心者なので、ばかげたことを見落としている可能性があります(そうであると確信しています、ハハ)。

4

1 に答える 1

6

提供されたスクリプトを使用して新しい CA を作成する必要があります。これは、すべての openssl オプションを処理するよりも簡単です。これは、Windows 自体の Cygwin にバンドルされている openssl を使用するか、お気に入りの Unix ディストリビューションを使用して行うことができます。これを bash スクリプトで行う方法を紹介します (ただし、perl スクリプトは同じはずです)。

$ ./CA.sh -newca

これにより、内部に CA 証明書を含む demoCA ディレクトリが作成されます。上記のコマンドを呼び出すと、CA 証明書 (CN、OU など) と CA 秘密鍵のパスフレーズのフィールドに関するプロンプトが表示されます。

これで、証明書要求または証明書要求から証明書を作成できるようになりました。

$ ./CA.sh -newreq

これにより、生成された秘密鍵を暗号化するための新しい証明書要求フィールドとパスフレーズが要求されます。デフォルトでは、要求は CA.sh (newreq.pem) と同じディレクトリに残されます。CN (共通名) として、お持ちの電子メール アドレスを使用することが重要です。

これで署名するだけで、本格的な証明書が手に入ります。

$ ./CA.sh -sign

これにより、署名付き証明書要求である newcert.pem が生成されます。証明書があれば、Microsoft CSP が認識する PFX または P12 ファイル内に証明書と秘密キーをパックするだけで済みます。

次に、newreq.pem と newcert.pem の内容をファイルにコピーします。

$ cat newreq.pem > keypair.pem
$ cat newcert.pem >> keypair.pem

次に、openssl シェルを使用して P12 ファイルを生成します (今回はスクリプトを使用しません)。要求が生成されたときに使用したパスフレーズと、エクスポート パスワード (p12 ファイル内の秘密鍵を暗号化するため) の入力を求められます。

$ openssl pkcs12 -export -in keypair.pem  -out mykeypair.p12
Enter pass phrase for keypair.pem:
Enter Export Password:
Verifying - Enter Export Password:

ほら。Windowsでダブルクリックしてキーストアにインポートし、メール署名証明書として使用できるPKCS#12ファイルがあります(デフォルトのオプションで十分かどうか、または作成時に追加の属性を指定する必要があるかどうかは覚えていませんOutlook が電子メール署名証明書として認識するための証明書)。また、CA 証明書を信頼できる CA としてインポートする必要があります (cacert.pem を demoCA ディレクトリ内の cacert.cer にコピーし、ダブルクリックしてインポートします)。

于 2009-01-13T21:33:00.973 に答える