web-dev-qa-db-ja.com

秘密鍵を読み込めません。 (PEMルーチン:PEM_read_bio:no start line:pem_lib.c:648:Expecting:ANY PRIVATE KEY)

PEM形式の秘密キーファイルである.keyファイルがあります。このファイルは作成しませんでしたが、どこかから入手しました。

以下のコマンドのようなopensslツールでMD5ハッシュを見たいと思いました。

openssl rsa -in server.key -modulus -noout

しかし、これは以下のエラーを生成します。

unable to load Private Key
13440:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:648:Expecting: ANY PRIVATE KEY

.keyファイルのasn1parseを次に示します。

openssl asn1parse -in server.key
0:d=0  hl=4 l= 603 cons: SEQUENCE
4:d=1  hl=2 l=   1 prim: INTEGER           :00
7:d=1  hl=3 l= 129 prim: INTEGER           :C141201603899993919CBAA56985E9C7
C6A2AF713A02F5FE88D38CEFBED9304599689280B84B0AB577A9719CA20DDA1246A894AF397A2C57
EE5A582B036CC367E3667454DCD82DBDBF187C35FE39F61C71B517DDDF576F5471B4EC2E045E0F9D
619F5616C4E832F00CBD0DBF41B4BA3CBC4B4B603AE1FE61965917DA732E0DEF
139:d=1  hl=2 l=   3 prim: INTEGER           :010001
144:d=1  hl=3 l= 128 prim: INTEGER           :1687B9AE67562CEDEBDD7A531B84CDB7
093CE138519B93C34B7F626076FF0A262B16EA71904ACB6251A39307C04ADE202055BA13DD9F1539
6123EE408183361A9BC08B9413FA360EA928E48CC3F52B33ACF2980758F02BA2139F652F30A257C2
2E45D7C25835FC4D22B9ECECC12AB632318D4F47E1EBDAD9781B96BCFF03A2D1

 ...

私が試すことができるものは他にありますか?

57
tkpl

PEMファイルのヘッダーとフッターを変更しました

-----BEGIN RSA PRIVATE KEY-----

そして

-----END RSA PRIVATE KEY-----

最後に、動作します!

40
tkpl

Notepad ++でキーファイルを開き、エンコードを確認します。 UTF-8-BOMと表示されている場合は、UTF-8に変更します。ファイルを保存して再試行してください。

18
Robert L.

.keyファイルに無効な文字が含まれています。次のように.keyファイルを確認できます。

# file server.key

出力「server.key:UTF-8 Unicode(with BOM)text」は、キーファイルではなくプレーンテキストであることを意味します。正しい出力は「server.key:PEM RSA秘密鍵」です。

不正な文字を削除するには、以下のコマンドを使用します。

# tail -c +4 server.key > new_server.key

New_server.keyは正しいはずです。

詳細については、 here をクリックしてください。投稿に感謝します。

9
张 俊
> I have a .key file which is PEM formatted private key file.
> ...
> Here's some asn1parse of the .key file...

asn1parseで問題ないように見えるので、そのnot PEMエンコードが信じられます。


私が試すことができるものは他にありますか?

ASN.1のように見えるため、次のことを試してください。

$ openssl rsa -in server.key -inform DER -modulus -noout

エンコーディングを切り替える-inform DERに注意してください。

6
jww

.keyファイルの先頭にある空白を削除します。

4
johnnycardy

CA証明書を作成する

c:\mycert>openssl genrsa -out privateKey.pem 4096
c:\mycert>openssl req -new -x509 -nodes -days 3600 -key privateKey.pem -out caKey.pem
3
Pravind Kumar

私はWindows 10で、キーをWindows1252エンコーディングで保存しましたが、うまくいきました。 StackOverflowの別の質問で、一部の人々はBOM付きのUTF-8でこれを修正していました。

言い換えれば、それはファイルエンコーディングかもしれません。

2
R.Bravo

セティフィケートボットを使用しない理由

yum install epel-release

yum install certbot-nginx

証明書を取得する

certbot --nginx -d example.com -d www.example.com

0
Dylan B