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

Добавление доменов в SSL-сертификат UCC / SAN

Есть ли способ перечислить все домены в сертификате SSL SAN / UCC (в идеале с помощью командной строки в linux / os x)?

Очевидно, должен быть какой-то способ извлечения данных, поскольку браузеры могут это делать. К сожалению, я вижу список, но не могу вырезать и вставить его.

openssl x509 -text < foo.crt должен сделать свое дело.

Вы можете перечислить домены с помощью этой команды (проверено на Linux):

cat cert.pem | openssl x509 -text | grep DNS

Если ты просто хочешь видеть SAN, grep DNS: это очевидное решение.

Если вы хотите иметь более чистый список для дальнейшей обработки, вы можете использовать это регулярное выражение Perl для извлечения только имен: @names=/\sDNS:([^\s,]+)/g

Например:

true | openssl s_client -connect example.com:443 2>/dev/null \
| openssl x509 -noout -text \
| perl -l -0777 -ne '@names=/\bDNS:([^\s,]+)/g; print join("\n", sort @names);'

Что выведет это:

example.com
example.edu
example.net
example.org
www.example.com
www.example.edu
www.example.net
www.example.org

Так что вы можете передать это while read name; do echo "processing $name ..."; done и т.п.

Или для списка через запятую в одной строке замените join("\n", с участием join(",",

(The -0777 переключатель для perl позволяет читать весь ввод сразу, а не построчно)