Назад | Перейти на главную страницу

Openssl: извлечь корневой сертификат из цепочки сертификатов?

Я получаю цепочку сертификатов с openssl s_client -showcerts -connect host.whatever:443 </dev/null.

В дополнение к этому я хотел бы программно извлечь корневой сертификат из цепочки в формате -----BEGIN CERTIFICATE-----.....-----END CERTIFICATE-----

Кто-нибудь знает о функциональности, которая способна на это и уже поставляется с OpenSSL?

openssl s_client показывает вам только цепочку сертификатов, отправленную клиентом. Эта цепочка обычно не включает сам корневой сертификат. Вместо этого корневой сертификат содержится только в локальном хранилище доверенных сертификатов и не отправляется сервером. Насколько мне известно, встроенного способа получить корневой сертификат для соединения с помощью командной строки openssl не существует.

Для веб-сервера не имеет смысла отправлять корневой сертификат, и браузер должен игнорировать его, если он будет отправлен (он ДОЛЖЕН быть в локальном хранилище). Если это промежуточный сертификат ЦС, вы должны получить его так, как вы уже используете.