Как создать PEM-файл из SSL-сертификата?
Вот файлы, которые у меня есть в наличии:
.crt
server.csr
server.key
Ваши ключи могут быть уже в формате 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", чтобы помочь вам управлять разрешениями, которые вы сохраняете для этого файла.
Мне нужно было сделать это для АРМ соб. После получения избили многих диалоговых раз, наконец, это то, что работал для меня:
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
Кроме того, если вы не хотите, чтобы программа запрашивала кодовую фразу, выполните следующую команду:
openssl rsa -in server.key -out server.key
это лучший вариант для создания .файл PEM
openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts
а) `в OpenSSL pkcs12 из -за сертификатов.П12-из Имя_сертификата.Пэм-узлов,
б) в OpenSSL pkcs12 из -за сертификатов.П12-из pushcert.УГР -узлы -clcerts` 5. Ваш .PEM-файл готов "и pushcert.УГР-то".
Что я наблюдал: если вы используете OpenSSL для генерации сертификатов, оно захватывает оба текстовой части и сертификат в base64 в файл CRT. Строгий формат PEM говорит (Вики определение), что файл должен начинаться и заканчиваться начинаться и заканчиваться.
.УГР – (усиленной конфиденциальности почты) в кодировке base64 в Der сертификат, заключенный между " по - -----начните сертификата-----" и "-----конец сертификат-----"и
Так что для некоторых библиотеках (я столкнулся с этим в Java), которые ожидают строгие формате PEM, созданный ЭЛТ не проверка как 'недопустимый PEM формате'.
Даже если вы копируете или grep строк с начала/завершения сертификат, и вставить его в совершенство.PEM-файл, он должен работать.
Вот что я делаю, не очень чистый, но работает для меня, в основном это фильтры, текст, начиная с начала строки:
грэп -в 1000 начнется экзамен.ЭЛТ > экзамен.УГР
Я пыталась уйти от 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 закрытого ключа на" ОГА;..
.. И что, наконец, работал.
Пытаюсь загрузить сертификат 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
в OpenSSL pkcs12 из -за YOUR_CERTIFICATE.П12-из YOUR_CERTIFICATE.УГР -узлы -clcerts