私のPCでこのコマンドを実行しています(Opensslバージョン:1.0.1):
openssl pkcs8 -inform DER -in file.key -passin pass:12345678a -outform PEM -out key.pem
そして私はこのkey.pemを手に入れました:
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANCFPVXwO+6qQdOs
...
wVauPfh0cGEf1Kc=
-----END PRIVATE KEY-----
しかし、同じコマンドをサーバー(Opensslバージョン:0.9.8e-fips-rhel5)から実行すると、次の出力が得られます。
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDQhT1V8DvuqkHTrMPFUUAXUl0ihDGoiD86SqK8Z3n19yp1VrJf
...
zHY0343VXnpM2opKwG2E1zgfHfbcLMFWrj34dHBhH9Sn
-----END RSA PRIVATE KEY-----
Base64の内部は異なり、ヘッダーも異なります。
-----BEGIN PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
最初のものは私にとってはうまくいきますが、0.9.8バージョンで----- BEGIN PRIVATE KEY -----出力を取得するにはどうすればよいですか?
OpenSslパッチノートでこれを見つけました:
デフォルトの秘密鍵形式をPKCS#8に変更します。
それで、それが主な問題になる可能性があります。誰かが私にこれを手伝ってくれることを願っています。秘密鍵を取得する方法は見つかりませんが、BEGIN RSA PRIVATE KEYを取得する方法は見つかりません。
ありがとう
行う openssl pkcs8 -topk8
秘密鍵を従来の形式からpkcs#8形式に変換します。
このフォーマット
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
秘密鍵の「SSLeay形式」または「従来の形式」と呼ばれます。
キーの形式がわからないので、genrsa
によって生成された秘密キーを使用してアイデアを示します。 OpenSSL 0.9.8xでgenrsa
を実行すると、生成されたキーは従来の形式になります。つまり、後
openssl genrsa -out file.key 1024
あなたは伝統的なフォーマットでRSAキーを取得します
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQC3TyaSzsJO92/Ahq5rxRI1T0JSC0iF...
-----END RSA PRIVATE KEY-----
次に、pkcs8
と-topk8
このキーを従来の形式からpkcs#8形式に変換します。
openssl pkcs8 -topk8 -inform pem -in file.key -outform pem -nocrypt -out file.pem
あなたが得るものはここにあります:
-----BEGIN PRIVATE KEY-----
MIICdQIBADANBgkqhkiG9w0BA...
-----END PRIVATE KEY-----
上記のすべてはOpenSSL 0.9.8xで行われます。従来のフォーマットキーからPKCS#8フォーマットキーを生成する方法を説明します。一方、OpenSSL 1.0.1でいつでもこれを実行して、古いバージョンと互換性のあるキーを作成できます。
openssl rsa -in file.pem -text > key.pem