Не удалось загрузить закрытый ключ. (PEM-процедуры: PEM_read_bio: нет стартовой строки: pem_lib.c: 648: Ожидание: ЛЮБОЙ ЧАСТНЫЙ КЛЮЧ)

У меня есть.key файл, который является файлом закрытого ключа в формате PEM. Я не делал этого файла, но я получил это откуда-то.

Я хотел увидеть его хэш MD5 с помощью инструмента openssl, например, команды ниже.

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

Здесь некоторый asn1parse файла.key.

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

 ...

Есть ли что-нибудь еще, что я могу попробовать?

Ответ 1

Я изменил верхний и нижний колонтитулы файла PEM на

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

а также

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

Наконец, это работает!

Ответ 2

> I have a .key file which is PEM formatted private key file.
> ...
> Here some asn1parse of the .key file...

То, что он выглядит нормально с asn1parse заставляет меня поверить, что он не закодирован PEM.


Есть ли что-нибудь еще, что я могу попробовать?

Поскольку он выглядит как ASN.1, попробуйте:

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

Обратите внимание на -inform DER для переключения между кодировками.

Ответ 3

Удалите все пробелы в начале файла.key.

Ответ 4

Создать сертификат CA

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

Ответ 5

Я нахожусь в Windows 10, и я сохранил свой ключ с кодировкой Windows1252, и это сработало для меня. В другом вопросе StackOverflow некоторые люди исправляли это с помощью UTF-8 с BOM.

Другими словами, это может быть кодировка файла.

Ответ 6

Почему бы не использовать cetificate bot

yum install epel-release

yum install certbot-nginx

Получение сертификата

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