Как получить файл .pem из .key и .crt файлов?

Как создать файл PEM из сертификата SSL?

Это файлы, которые у меня есть:

  • .crt
  • server.csr
  • server.key

Ваши ключи могут уже находиться в формате PEM, но только что названы с .crt или .key.

Если содержимое файла начинается с -----BEGIN и вы можете прочитать его в текстовом редакторе:

Файл использует base64, который читается в ASCII, а не в двоичном формате. Сертификат уже находится в формате PEM. Просто измените расширение на .pem.

Если файл находится в двоичном формате:

Для сервера.crt вы будете использовать

 openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem 

Для server.key используйте openssl rsa вместо openssl x509 .

Вероятно, server.key – это ваш закрытый ключ, а файл .crt – это возвращенный сертификат, подписанный x509.

Если это для веб-сервера, и вы не можете указать загрузку отдельного частного и открытого ключа:

Возможно, вам понадобится объединить два файла. Для этого использования:

 cat server.crt server.key > server.includesprivatekey.pem 

Я бы рекомендовал именовать файлы с помощью «includesprivatekey», чтобы помочь вам управлять разрешениями, которые вы храните с этим файлом.

Мне нужно было сделать это для ELB AWS. После неоднократного избиения диалогового windows, наконец, это то, что сработало для меня:

 openssl rsa -in server.key -text > private.pem openssl x509 -inform PEM -in server.crt > public.pem 

Благодаря NCZ

Изменить: Как пишет @floatingrock

С AWS не забудьте добавить имя файла в file:// . Это будет выглядеть так:

  aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/ 

http://docs.aws.amazon.com/cli/latest/reference/iam/upload-server-certificate.html

Файл pem содержит сертификат и закрытый ключ. Это зависит от формата вашего сертификата / ключа, но, возможно, это так просто:

 cat server.crt server.key > server.pem 

Кроме того, если вы не хотите, чтобы он запрашивал парольную фразу, необходимо выполнить следующую команду:

 openssl rsa -in server.key -out server.key 

это лучший вариант для создания файла .pem

 openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts 

Я заметил следующее: если вы используете openssl для создания сертификатов, он фиксирует как текстовую часть, так и часть сертификата base64 в файле crt. Строгий формат pem говорит ( определение wiki ), что файл должен начинаться и заканчиваться BEGIN и END.

.pem – (конфиденциальная расширенная почта). Сертификат DER с кодировкой Base64, заключенный между «—– BEGIN CERTIFICATE —–» и «—– КОНЕЦ СЕРТИФИКАТА —–»

Поэтому для некоторых библиотек (я столкнулся с этим в java), которые ожидают строгий формат pem, сгенерированный crt завершит проверку недействительным как «недопустимый формат pem».

Даже если вы скопируете или смажьте строки BEGIN / END CERTIFICATE и вставьте их в файл cert.pem, он должен работать.

Вот что я делаю, не очень чистый, но работает для меня, в основном он фильтрует текст, начинающийся с строки BEGIN:

grep -A 1000 BEGIN cert.crt> cert.pem

Я пытался перейти от godaddy к движку приложения. Что трюк использовал эту линию:

 openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr 

Точно так же, как есть, но заменяя имя моим доменным именем (а не тем, что это действительно даже важно)

И я ответил на все вопросы, касающиеся общего названия / организации, как http://www.name.com

Затем я открыл csr, скопировал его, вложил в папа, а затем загрузил его, распаковал, перешел в распакованную папку с терминалом и ввел:

 cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt 

Затем я использовал эти инструкции из Trouble with Google Apps Custom Domain SSL , которые были:

 openssl rsa -in privateKey.key -text > private.pem openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem 

точно так же, как есть, кроме вместо privateKey.key я использовал имя.unencrypted.priv.key, а вместо www_mydomain_com.crt я использовал name.crt

Затем я загрузил public.pem в консоль администратора для «сертификата X.509, закодированного в PEM», и загрузил private.pem для «незашифрованного секретного ключа RSA с кодировкой PEM».

.. И это наконец сработало.

Пытаясь загрузить сертификат GoDaddy на AWS, я несколько раз проваливался, но в итоге это было довольно просто. Не нужно ничего конвертировать в .pem. Вы просто должны быть уверены, что включить сертификат GoDaddy bundle в параметре chain, например

 aws iam upload-server-certificate --server-certificate-name mycert --certificate-body file://try2/40271b1b25236fd1.crt --private-key file://server.key --path /cloudfront/production/ --certificate-chain file://try2/gdig2_bundle.crt 

И чтобы удалить предыдущую неудачную загрузку, вы можете сделать

 aws iam delete-server-certificate --server-certificate-name mypreviouscert 
  1. Загрузите сертификат из временного портала appleId,
  2. Экспорт сертификата из Key chain и укажите имя (Certificates.p12),
  3. Открыть терминал и папку goto, где вы сохраняете файл Certificates.p12,
  4. Выполнить следующие команды:

    a) openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes ,

    b) openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts

  5. Ваш .pem-файл готов «pushcert.pem».
  • Открытый терминал.
  • Перейдите в папку, в которой находится ваш сертификат.
  • Выполните команду ниже, заменив имя сертификатом.

openssl pkcs12 -in YOUR_CERTIFICATE.p12 -out YOUR_CERTIFICATE.pem -nodes -clcerts

  • Надеюсь, это сработает!
  • pip всегда терпит неудачу ssl проверка
  • Почему OS X не доверяет SSL-сертификату GitHub?
  • Как добавить сертификат с самозаверенного сервера в доверенные сертификаты в Chrome?
  • Подключение SSL / Сброс соединения с помощью IISExpress
  • Включить SSL для моей службы WCF
  • Thunderbird: Ошибка: imap.server.com: сервер не поддерживает RFC 5746, см. CVE-2009-3555
  • Как использовать TLS 1.2 в Java 6
  • Поддерживает ли Android Volley SSL?
  • Есть ли .NET-версия TLS 1.2?
  • Поддержка Android SSL - SNI
  • Импорт пары private-key / public-certificate в Java KeyStore
  • Interesting Posts
    Давайте будем гением компьютера.