. С 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
, а также?
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) зависит от использования.