Pkcs#12ファイルから秘密RSAキーを取得しようとしています。
標準を実行してみました
openssl pkcs12 -nocerts -out priv.pem -in domain.com.pfx
ただし、これにより以下のようなキーファイルが生成されます。
Bag Attributes
Microsoft Local Key set: <No Values>
localKeyID: 01 00 00 00
friendlyName: xxxxxxxx
Microsoft CSP Name: Microsoft RSA SChannel Cryptographic Provider
Key Attributes
X509v3 Key Usage: 10
-----BEGIN ENCRYPTED PRIVATE KEY-----
私がそれをカヌーに入れる必要があるサーバーはキーファイルを処理し、サンプルデータを見ると次のようなファイルが表示されます
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,2CF27DD60B8BB3FF
そして当然のことながら、キーは両方のファイルに存在します。しかし、サーバーはRSA秘密鍵ファイルのみを受け入れるようで、取得した出力はX509v3ファイルのように思えますが、これをRSA秘密鍵ファイルに取得する方法を知っている人はいますか?
まあ-テキストエディターを使用して問題のある行を削除するのが最も簡単な場合があります。それ以外の場合、以下はバッグの属性をクリーンアップします。
openssl pkcs12 -in x.pfx -nocerts -nodes -passin pass:123456 | openssl rsa -out privkey.pem
der/netの取得にも使用できます
openssl pkcs12 -in x-fred.p12 -nocerts -nodes -passin pass: | openssl rsa -outform DER -out privkey.der
これは実際にあなたが望むフォーマットかもしれません。ただし、ツールがパスワードなしの秘密キーを受け入れないことはかなり一般的です(多くのツールは、文字数が4または6でない場合、警告なしに失敗します)。したがって、それらの場合、テールエンドを次のように変更します。
.... | openssl rsa -passout pass:123456 -out privkey.pem
.... | openssl rsa -passout pass:123456 -out privkey.der -outform der
これは私にとってはうまくいきます:
openssl pkcs12 -in "$1" \
-nocerts -nomacver \
-passin file:<(cat "$pw") \
-passout file:<(cat "$pw") |
sed -n '/^-----BEGIN ENCRYPTED PRIVATE KEY-----/,/^-----END ENCRYPTED PRIVATE KEY-----/p'
Windows 7 64ビットでは、コマンドを使用できますが、MacおよびLinuxでは、次の手順を実行する必要があります。
1、pemファイルを作成します。
openssl pkcs12 -in xxx.pfx -out xxx.pem
2、rsa秘密鍵を作成します。
openssl pkcs12 -in xxx.pfx -passin pass:yourpassword | openssl rsa -des3 -passout pass:yourpassowrd -out xxx.key
この手順により、次の内容のキーファイルが作成されます。 "----- BEGIN RSA PRIVATE KEY ----- Proc-Type:4、ENCRYPTED DEK-Info:DES-EDE3-CBC、2CF27DD60B8BB3FF"
3、テキストエディターで.pemおよび.keyファイルを開き、.pemファイルのOriginキー "----- BEGIN ENCRYPTED PRIVATE KEY -----"を.keyファイルのrsaキーで置き換えます。 。