Как добраться.файл PEM от.ключ и.файлы ЭЛТ?
как я могу создать PEM-файл из SSL-сертификата?
эти файлы, которые у меня есть в наличии:
.crt
-
server.csr
server.key
10 ответов:
ваши ключи уже могут быть в формате PEM, но только с именем .ЭЛТ или .ключ.
если содержимое файла начинается с
-----BEGIN
и вы можете прочитать его в текстовом редакторе:файл использует base64, который читается в ASCII, а не двоичном формате. Сертификат уже находится в формате PEM. Просто измените расширение на .УГР.
если файл в двоичном виде:
для сервера.ЭЛТ, вы бы используйте
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem
для сервера.ключ, используйте
openssl rsa
на местеopenssl x509
.сервер.ключ, скорее всего, ваш закрытый ключ, и то .crt-файл-это возвращенный, подписанный сертификат x509.
если это для веб-сервера и вы не можете указать загрузку отдельного закрытого и открытого ключа:
возможно, Вам потребуется объединить два файла. Для этого используйте:
cat server.crt server.key > server.includesprivatekey.pem
Я бы рекомендовал называть файлы с помощью "includesprivatekey", чтобы помочь вы управляете разрешениями, которые вы сохраняете с этим файлом.
мне нужно было сделать это для AWS ELB. После избиения диалогом много раз, наконец, это то, что сработало для меня:
openssl rsa -in server.key -text > private.pem openssl x509 -inform PEM -in server.crt > public.pem
спасибо NCZ
Edit: как говорит @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
A
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 говорит (определение Вики) что файл должен начинаться и заканчиваться с начала и конца.
.PEM - (Privacy Enhanced Mail) base64 кодированный сертификат DER, заключенный между " - - - - - начните сертификат -- - - - "и" - - - - - конец Сертификат - - - - -"
Так что для некоторых библиотек (Я столкнулся с этим в java), которые ожидают строгий формат pem, сгенерированный crt не пройдет проверку как "недопустимый формат pem".
даже если вы копируете или grep строки с сертификатом BEGIN/END и вставляете его в сертификат.PEM-файл, он должен работать.
вот что я делаю, не очень чистый, но работает для меня, в основном он фильтрует текст, начиная с начала строки:
grep-A 1000 BEGIN cert.ЭЛТ > верняк.Пем
Я пытался перейти от godaddy к App engine. Какой же трюк был с использованием этой строки:
openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr
точно как есть, но замена имени на мое доменное имя (не то, чтобы это действительно имело значение)
и я ответил на все вопросы, касающиеся общего названия / организации, как www.name.com
затем я открыл csr, скопировал его, вставил его в go daddy, затем загрузил его, распаковал его, перешел к распакованной папке с терминалом и вошел:
cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt
затем я использовал эти инструкции от проблема с 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.ключ я использовал имя.нешифрованный.прив.ключ, а вместо www_mydomain_com.ЭЛТ, я использовал имя.ЭЛТ
затем я загрузил общественности.pem в консоль администратора для "PEM encoded X. 509 certificate" и загрузил private.pem для "незашифрованного PEM закодированного RSA private ключевой.".
.. И это наконец сработало.
попытка загрузить сертификат 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
- загрузите сертификат с временного портала appleId,
- экспорт сертификата из цепочки ключей и дать имя (сертификаты.p12),
- откройте терминал и папку goto, где вы сохраняете вышеуказанные сертификаты.файл p12,
выполните следующие команды:
a)
openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes
,b)
openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts
- ваш .PEM файл готов " pushcert.УГР."