Невозможно открыть закрытый ключ SSL [Ожидается: ДОВЕРЕННЫЙ СЕРТИФИКАТ] - PullRequest
0 голосов
/ 03 ноября 2019

Я сгенерировал SSL-сертификат с Let's Encrypt, и они сгенерировали файлы:

cert.pem |chain.pem |fullchain.pem |privkey.key |privkey.pem

С помощью следующей команды я могу успешно открыть все файлы , за исключением privkey.key и privkey.pem :

openssl x509 -in [filename] 

Это сообщение об ошибке:

невозможно загрузить сертификат 140505945014720: ошибка: 0909006C: процедуры PEM: get_name: нет начальной строки: ../ crypto / pem /pem_lib.c: 745: Ожидается: ДОВЕРЕННЫЙ СЕРТИФИКАТ

В некоторых статьях предлагается преобразовать расширение .der с помощью этой команды, приведенной ниже. остается ошибка («невозможно загрузить»):

openssl x509 -in privkey.pem -outform der -out privkey.der

1 Ответ

1 голос
/ 03 ноября 2019

Закрытые ключи не являются сертификатами, а x509 - для сертификатов. См. https://www.openssl.org/docs/man1.0.2/man1/x509.html для получения информации о том, что может x509 делать, если хотите.

Чтобы посмотреть личные ключи, вы хотите pkey. https://www.openssl.org/docs/man1.0.2/man1/pkey.html

Некоторые статьи предполагают, что нам необходимо преобразовать в расширение .der

Вероятно, поэтому решите другую проблему с тем же сообщением об ошибке. Он будет показан в любое время, когда openssl x509 попытается прочитать неверный ввод:

$ openssl x509  <<<"not a cert"
unable to load certificate
140736021758920:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:697:Expecting: TRUSTED CERTIFICATE

Будущие читатели, будьте осторожны, чтобы не преследовать диких гусей. Это конкретное сообщение в основном означает «предоставлен недействительный сертификат», но если вы будете искать его, вы увидите в Интернете много информации о том, как исправить ваш сертификат , что не будет одинаковым в каждом случае. Таким образом, вы должны действительно замедлить и посмотреть, что происходит, если вы видите эту ошибку. Абсолютно верно, что некоторые форматы сертификатов должны быть изменены на другой формат для x509. Но все ошибки будут одинаковыми.

Для записи имя файла "extension" в основном не имеет смысла в командной строке unix. openssl x509 ничего не основывает на части имени файла после последней ., как и большинство других программ (одно заметное исключение - vim, которое использует его для угадывания подсветки синтаксиса, если включено). Но если вы хотите преобразовать PEM в DER или любой другой формат файла, дело не в переименовании файла, а в изменении его содержимого - скорее всего, с помощью другого вызова openssl. Дело не в том, как вы их называете, а в том, что внутри.

...