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

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

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

  • .crt
  • server.csr
  • server.key
Комментарии к вопросу (1)
Решение

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

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

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

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

Для server.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", чтобы помочь вам управлять разрешениями, которые вы сохраняете для этого файла.

Комментарии (6)

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

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

Спасибо НЦЗ

Редактировать: как @floatingrock говорит

С AWS, Дон'т забудьте добавить к имени файла с файл://. Так что'будете выглядеть:

 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

Комментарии (3)

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

cat server.crt server.key > server.pem
Комментарии (7)

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

openssl rsa -in server.key -out server.key
Комментарии (1)

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

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts
Комментарии (0)
  1. Сертификат скачать из временного портала appleId,
  2. Экспортный сертификат  с брелок и  дайте имя (сертификаты.Р12),
  3. Папку открыть терминал и перейти, где вы сохранить вышеуказанные сертификаты.файл P12,
  4. Запустите ниже команды:

а) `в OpenSSL pkcs12 из -за сертификатов.П12-из Имя_сертификата.Пэм-узлов,

б) в OpenSSL pkcs12 из -за сертификатов.П12-из pushcert.УГР -узлы -clcerts` 5. Ваш .PEM-файл готов "и pushcert.УГР-то".

Комментарии (0)

Что я наблюдал: если вы используете OpenSSL для генерации сертификатов, оно захватывает оба текстовой части и сертификат в base64 в файл CRT. Строгий формат PEM говорит (Вики определение), что файл должен начинаться и заканчиваться начинаться и заканчиваться.

.УГР – (усиленной конфиденциальности почты) в кодировке base64 в Der сертификат, заключенный между " по - -----начните сертификата-----" и "-----конец сертификат-----"и

Так что для некоторых библиотеках (я столкнулся с этим в Java), которые ожидают строгие формате PEM, созданный ЭЛТ не проверка как 'недопустимый PEM формате'.

Даже если вы копируете или grep строк с начала/завершения сертификат, и вставить его в совершенство.PEM-файл, он должен работать.

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

грэп -в 1000 начнется экзамен.ЭЛТ > экзамен.УГР

Комментарии (2)

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

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

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

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

Затем я открыл КСО, скопировал его, вставил его в GoDaddy, то его скачали, разархивировали ее, переходите к распакованной папке с терминалом и вошел:

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

Затем я использовал эти инструкции от https://stackoverflow.com/questions/17569312/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

точно как есть, только вместо закрытый ключ.ключ я использовал имя.в незашифрованном виде.прив.ключ, и вместо www_mydomain_com.ЭЛТ, я использовала имя.ЭЛТ

Затем я загрузил общественности.PEM в администраторскую консоль "в формате PEM сертификат я Х. 509&;, и выложил собственный.PEM для "в незашифрованном формате PEM закрытого ключа на&quot ОГА;..

.. И что, наконец, работал.

Комментарии (0)

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

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)
  • Открыть терминал.
  • Перейдите в папку, где Ваш сертификат находится.
  • Выполните указанную ниже команду, заменив имя с вашим сертификатом.

в OpenSSL pkcs12 из -за YOUR_CERTIFICATE.П12-из YOUR_CERTIFICATE.УГР -узлы -clcerts

  • Надеюсь, что это будет работать!!
Комментарии (0)