с помощью 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
крт с:
openssl x509 -in cert-start.pem -out cert-start.crt
Чтобы построить CRT с полной цепочкой, я пробовал -chain
, -clcerts
без удачи.
Как правильно включить все промежуточные сертификаты из SSLCACertificateFile /etc/apache2/ssl/cert-bundle.pem
также?
cat cert-start.pem cert-bundle.pem > chain.pem
если он также будет содержать ключ (в некоторых случаях он необходим, но зависит от использования)
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) зависит от использования.
Вы просто объединяете их
cat domain.tld.key domain.tld.crt root.crt > domain.tld.pem