.keyファイルがあります。
openssl rsa -text -in file.key
私は得る
unable to load Private Key
140000419358368:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY
また、私は.cerファイルを持っています
openssl x509 -text -in file.cer
私は得る
unable to load certificate
140387178489504:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
しかし、指摘したように here の場合、次のようにコマンドを実行します。
openssl x509 -text -inform DER -in file.cer
私は得る
Certificate:
Data:
Version: 3 (0x2)
Some more information
...
-----BEGIN CERTIFICATE-----
MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEF
...
-----END CERTIFICATE-----
しかし、それはキーでは機能しないようです。
openssl rsa -text -inform DER -in aaa010101aaa__csd_10.key
私は得る
unable to load Private Key
140004844304032:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337:
140004844304032:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:849:
140004844304032:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:769:Field=version, Type=RSA
140004844304032:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
140004844304032:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337:
140004844304032:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:849:
140004844304032:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:769:Field=version, Type=PKCS8_PRIV_KEY_INFO
秘密鍵とその証明書を取得するにはどうすればよいですか?
DER
ではなくPEM
形式の証明書があるようです。これが、-inform PEM
コマンドライン引数(opensslにどの入力形式が必要かを伝える)を指定したときに正しく機能する理由です。
秘密鍵が同じエンコーディングを使用している可能性があります。 openssl rsa
コマンドが-inform
引数も受け入れるように見えるので、試してください:
openssl rsa -text -in file.key -inform DER
PEM
エンコードファイルは、次のようなプレーンテキストエンコードです。
-----BEGIN RSA PRIVATE KEY-----
MIGrAgEAAiEA0tlSKz5Iauj6ud3helAf5GguXeLUeFFTgHrpC3b2O20CAwEAAQIh
ALeEtAIzebCkC+bO+rwNFVORb0bA9xN2n5dyTw/Ba285AhEA9FFDtx4VAxMVB2GU
QfJ/2wIRANzuXKda/nRXIyRw1ArE2FcCECYhGKRXeYgFTl7ch7rTEckCEQDTMShw
8pL7M7DsTM7l3HXRAhAhIMYKQawc+Y7MNE4kQWYe
-----END RSA PRIVATE KEY-----
DER
はバイナリエンコード形式です。
更新
キーはPKCS#8形式(PEMまたはDERエンコードのいずれか)で配布される場合があります。これを試して、あなたが得るものを見てください:
openssl pkcs8 -in file.key -inform der
Windowsでopensslを使用すると、「Expecting:ANY PRIVATE KEY」エラーが発生しました(Ubuntu BashとGit Bashにも同じ問題がありました)。
問題の原因は、UTF8を使用してキーパッドと証明書ファイルをメモ帳に保存していたことです。両方のファイルをANSI形式で保存すると、問題は解決しました。
openssl pkcs12 -export -out cacert.pkcs12 -in testca/cacert.pem
の実行時に、次のメッセージを受け取りました。
秘密鍵をロードできません140707250050712:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting:ANY PRIVATE KEY`
キーファイルとコマンドを提供することでこれを解決しました。スイッチは-inkey inkeyfile.pem
です
私の2セント:ルートCA証明書でopensslコマンドを実行しているときに、RHEL7.3で同じエラーメッセージが表示されました。その理由は、ADサーバーから証明書をダウンロードするときに、エンコーディングがBase64ではなくDERとして選択されたためです。新しい証明書のダウンロードに適切なバージョンのエンコードが選択されると、エラーは解決されました
これが新しいユーザーに役立つことを願っています:-)