`openssl`: Альтернативное имя субъекта

Я написал этот бит кода, чтобы получить общее имя поля subject в сертификате SSL для данного домена:

$ echo -e "GET / HTTP/1.1\nEOT" | \ openssl s_client -connect google.com:443 2>&1 | \ grep subject subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com 

Однако это только дает мне «предметную» ценность. Альтернативные CN могут быть указаны в поле «Альтернативное имя субъекта». Например:

Итак, как я могу получить значение поля альтернативного имени объекта в Bash?

4 Solutions collect form web for “`openssl`: Альтернативное имя субъекта”

Это может не работать при любых обстоятельствах, но попробуйте

 openssl s_client -connect google.com:443 2> & 1 |  openssl x509 -text |  grep DNS

То, что написал @ stuart-p-bentley, заставило меня задуматься, и я придумал этот способ получить список с разделителями-запятыми «Subject Alternative Names» с помощью openssl , awk и tr . Строка sed в его ответе не работает на FreeBSD на пример.

 openssl s_client -connect google.com:443 2>&1 | openssl x509 -text | awk '/X509v3 Subject Alternative Name/ {getline;gsub(/ /, "", $0); print}' | tr -d "DNS:" 

Вот что вы получаете с google.com

 *.google.com,*.android.com,*.appengine.google.com,*.cloud.google.com,*.google-analytics.com,*.google.ca,*.google.cl,*.google.co.in,*.google.co.jp,*.google.co.uk,*.google.com.ar,*.google.com.au,*.google.com.br,*.google.com.co,*.google.com.mx,*.google.com.tr,*.google.com.vn,*.google.de,*.google.es,*.google.fr,*.google.hu,*.google.it,*.google.nl,*.google.pl,*.google.pt,*.googleadapis.com,*.googleapis.cn,*.googlecommerce.com,*.googlevideo.com,*.gstatic.cn,*.gstatic.com,*.gvt1.com,*.gvt2.com,*.urchin.com,*.url.google.com,*.youtube-nocookie.com,*.youtube.com,*.youtubeeducation.com,*.ytimg.com,android.com,g.co,goo.gl,google-analytics.com,google.com,googlecommerce.com,urchin.com,youtu.be,youtube.com,youtubeeducation.com 

Вот версия, которая будет работать при любых обстоятельствах (и полосах ведущего пространства):

 openssl s_client -connect google.com:443 2>&1 | openssl x509 -text | sed -nr '/^ {12}X509v3 Subject Alternative Name/{n;s/^ *//p}' 

Также используйте переключатель

 -certopt no_pubkey,no_sigdump,no_validity,no_serial,no_header,no_issuer,no_version,no_aux,no_signame,no_subject 
  • Возможно ли использование SMTP через SSL в клиенте электронной почты Balsa?
  • Как отправить почту в учетную запись gmail с помощью ssmtp
  • Установите ssl на CentOS Apache server
  • cURL / wget - SSLv3, рукопожатие TLS, CERT зависает
  • почему сообщение postfix smtp отключено?
  • SSL (размещен на LB), который будет установлен на серверах Apache Downstream?
  • Создать сертификат SSL не интерактивно
  • Как я могу обновить сертификаты в своей системе, чтобы исправить ошибку wget: «Не удалось установить соединение SSL»?
  • сделать фатальную ошибку: openssl / sha.h: нет такого файла или каталога
  • Конвергенция с Firefox 3.6?
  • Уязвимость Nessus 35291 Алгоритм слабых взломов: 383 HP OpenView
  • Interesting Posts

    Как определить, было ли в метаданных

    Linux PAM: добавьте конкретную lib в Makefile и скомпилируйте один модуль

    Как настроить OpenVPN в качестве клиента шлюза для Witopia?

    Как создать резервную копию всего установленного программного обеспечения / пакетов в AIX?

    В чем причина изменения имени известных приложений?

    Понимание дискового пространства?

    Bash: вычислить время, прошедшее между двумя временными метками

    Как вырезать текстовый файл с помощью Vim

    attron (A_BLINK), используя Ncurses, ничего не делает

    Как настроить Cron для запуска команды mysqlauditgrep для 11:00 в пятницу

    Вход свободный и верхний

    mv: добавить номер в имя файла, если цель существует

    Как получить миниатюрный (живой просмотр миниатюр) открытых окон в Linux?

    OpenWRT: TL-MR3020 Невозможно включить SSH или TELNET в маршрутизатор с помощью специального контейнера OpenWRT

    Как получить каталог пользователя для обоев GNOME

    Linux и Unix - лучшая ОС в мире.