Как извлечь имя отправителя ssl с помощью openssl

#openssl

#openssl

Вопрос:

Я пробовал различные комбинации команд openssl, чтобы извлечь ТОЛЬКО имя отправителя SSL определенного доменного имени, но это было невозможно. Я также провел исследование, чтобы найти готовое решение, но мне не повезло.

Я знаю, что следующая команда предоставит нам много информации о сертификате SSL, включая имя эмитента ssl: openssl s_client -showcerts -verify 5 -connect example.com:443

Возможно ли с помощью простой команды openssl получить только имя отправителя ssl (например, Let’s Encrypt или DigiCert), используя только имя домена?

Комментарии:

1.Если Unix, это базовое: openssl s_client -connect host:port [-servername host] </dev/null 2>/dev/null | grep "^ i:" покажет всех эмитентов в цепочке как отправленных, которые в соответствии со стандартами должны быть полными, возможно, за исключением root. Добавьте | head -1 , чтобы получить только первое, или замените grep на что-то вроде | sed -n "/^ i:/{p;q}" , в зависимости от вашей версии sed или Unix. Для OpenSSL ниже 1.1.1 -servername host требуется с некоторыми хостами, чтобы получить правильную цепочку сертификатов.

2. Для чего угодно вы можете использовать второй openssl: openssl s_client as above </dev/null 2>/dev/null | openssl x509 -noout -issuer (в Windows используйте NUL: вместо /dev/null ). (Это всегда показывает только первый уровень.)