Wyświetlanie domen na certyfikacie SSL UCC / SAN


15

Czy istnieje sposób na wyświetlenie listy wszystkich domen na certyfikacie SAN / UCC SSL (najlepiej przy użyciu wiersza poleceń w systemie Linux / OS X)?

Oczywiście musi istnieć jakiś sposób na wyodrębnienie danych, ponieważ przeglądarki mogą to zrobić. Niestety widzę listę, ale nie mogę jej wyciąć i wkleić.

Odpowiedzi:


25

openssl x509 -text < foo.crt powinien załatwić sprawę.


3
Dla potomnych jest to pełne polecenie, którego użyłem, ponieważ robiłem to dla innego serwera:openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text
Jordan Reiter,

3
Aby uzyskać listę domen oddzieloną spacją, możesz przekazać ją przez grep i sed takopenssl x509 -text < $CRT | grep 'DNS:' | sed 's/\s*DNS:\([a-z0-9.\-]*\)[,\s]\?/\1 /g'
Geoffrey

Przewiń w dół: odpowiedź panticz.de jest lepsza ;-)
lucaferrario

10

Możesz wyświetlić listę domen za pomocą tego polecenia (testowane na systemie Linux):

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

Ten daje lepszy wynik niż zaakceptowana odpowiedź.
VaTo

Tak, to powinna być zaakceptowana odpowiedź.
Kal

1

Jeśli chcesz tylko zobaczyć SAN, grep DNS:to oczywiste rozwiązanie.

Jeśli chcesz mieć czystszą listę do dalszego przetwarzania, możesz użyć tego wyrażenia regularnego Perla, aby wyodrębnić tylko nazwy: @names=/\sDNS:([^\s,]+)/g

Na przykład:

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);'

Co wyprowadziłoby to:

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

Możesz więc potokować to while read name; do echo "processing $name ..."; doneitp.

Lub na liście oddzielone przecinkami na jednej linii, należy wymienić join("\n",zjoin(",",

( -0777Przełącznik Perla powoduje, że odczytuje on cały tekst naraz zamiast wiersza po wierszu)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.