Openssl конвертирует pem в crt с промежуточными сертификатами

. С Firefox легко экспортировать используемый SSL-сертификат страницы как x509 со всеми промежуточными сертификатами как * .crt.

Мне нужно сделать то же самое, преобразовав файлы * .pem в * .crt как небинарный формат с помощью openssl.

Это текущие сертификаты, используемые apache:

SSLCertificateFile /etc/apache2/ssl/cert-start.pem
SSLCertificateKeyFile /etc/apache2/ssl/key-no-pw.pem
SSLCACertificateFile /etc/apache2/ssl/cert-bundle.pem

Я могу легко преобразовать SSLCertificateFile в crt с помощью:

openssl x509  -in cert-start.pem -out cert-start.crt

Чтобы построить crt с полной цепочкой, я безуспешно пробовал -chain , -clcerts .

] Как правильно включить все промежуточные сертификаты из SSLCACertificateFile /etc/apache2/ssl/cert-bundle.pem, а также?

1
задан 18 June 2019 в 14:23
2 ответа
cat cert-start.pem cert-bundle.pem > chain.pem

в случае, если он будет содержать также ключ (в некоторых случаях он требуется, но зависит от использования) ot будет

cat cert-start.pem cert-bundle.pem key-no-pw.pem > full_chain.pem

Если вы проверите вывод, вы увидите что-то вроде этого (в случае chain.pem):

-----BEGIN CERTIFICATE-----
 ... <base64 encoded server cert> ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
 ... <base64 encoded intermediate cert> ...
-----END CERTIFICATE-----

А в случае full_chain.pem это будет что-то вот так:

-----BEGIN CERTIFICATE-----
 ... <base64 encoded server cert> ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
 ... <base64 encoded intermediate cert> ...
-----END CERTIFICATE-----

-----BEGIN PRIVATE KEY-----
 ... <base64 encoded key>
-----END PRIVATE KEY-----

Если вы «проверите» его с помощью openssl x509 -in chain.pem , вы увидите только первый (в данном случае серверный) сертификат. Все остальное будет обработано как комментарий - игнорируется. Вы должны разделить его на дополнительный файл или просто распечатать определенный диапазон строк через канал в openssl, чтобы увидеть содержимое. Настоящая проверка может быть выполнена «визуально» с помощью cat или какого-либо текстового редактора, который вы предпочитаете ... Как только приложение ожидает файл pem / crt, это то, что вам нужно.

Если вы хотите обработать его как «контейнер», правильная форма - pkcs12. Там вы можете обрабатывать его как набор сертификатов и обрабатывать его таким образом и просматривать / импортировать его. В этом случае используется команда

openssl pkcs12 -export -in cert-start.pem -inkey key-no-pw.pem -certfile cert-bundle.pem -out full_chain.p12 -nodes

. Вывод pkcs12 можно проверить с помощью команды

openssl pkcs12 -in full_chain.p12 -nodes

. Обратите внимание, что «правильный» формат (p12 или pem / crt) зависит от использования.

0
ответ дан 3 December 2019 в 23:03

Вы просто объединяете их

cat domain.tld.key domain.tld.crt root.crt > domain.tld.pem
1
ответ дан 3 December 2019 в 23:03

Теги

Похожие вопросы