Elenco dei domini su un certificato SSL UCC / SAN


15

C'è un modo per elencare tutti i domini su un certificato SSL SAN / UCC (idealmente usando la riga di comando su linux / os x)?

Chiaramente ci deve essere un modo per estrarre i dati, poiché i browser possono farlo. Sfortunatamente, posso vedere l'elenco ma non riesco a tagliarlo e incollarlo.

Risposte:


25

openssl x509 -text < foo.crt dovrebbe fare il trucco.


3
Per i posteri, questo è il comando completo che ho usato, dato che lo stavo facendo per un altro server:openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text
Jordan Reiter,

3
Per ottenere un elenco di domini delimitato da spazi vuoti, puoi passare attraverso grep e sed in questo modoopenssl x509 -text < $CRT | grep 'DNS:' | sed 's/\s*DNS:\([a-z0-9.\-]*\)[,\s]\?/\1 /g'
Geoffrey,

Scorri verso il basso: la risposta di panticz.de è migliore ;-)
lucaferrario,

10

Puoi elencare i domini con questo comando (testato su Linux):

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

Questo fornisce un output migliore rispetto alla risposta accettata.
Va

Sì, questa dovrebbe essere la risposta accettata invece.
Kal

1

Se vuoi solo vedere le SAN, grep DNS:è la soluzione ovvia.

Se si desidera avere un elenco più pulito da elaborare ulteriormente, è possibile utilizzare questa regex Perl per estrarre solo i nomi: @names=/\sDNS:([^\s,]+)/g

Per esempio:

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

Che produrrebbe questo:

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

Quindi potresti inoltrarlo a while read name; do echo "processing $name ..."; doneecc.

O per un elenco separato da virgole su una riga, sostituire join("\n",conjoin(",",

(L' -0777interruttore per perl lo fa leggere l'intero input contemporaneamente anziché riga per riga)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.