Auflisten von Domänen in einem UCC / SAN-SSL-Zertifikat

15

Gibt es eine Möglichkeit, alle Domänen in einem SAN / UCC-SSL-Zertifikat aufzulisten (idealerweise über die Befehlszeile unter Linux / OS X)?

Natürlich muss es eine Möglichkeit geben, die Daten zu extrahieren, da Browser dies tun können. Leider sehe ich die Liste, kann sie aber nicht ausschneiden und einfügen.

Jordan Reiter
quelle

Antworten:

25

openssl x509 -text < foo.crt sollte den Trick machen.

Dan Pritts
quelle
3
Für die Nachwelt ist dies der vollständige Befehl, den ich verwendet habe, da ich ihn für einen anderen Server ausgeführt habe:openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text
Jordan Reiter
3
Um eine durch Leerzeichen begrenzte Liste von Domains zu erhalten, können Sie diese durch grep und sed wie folgt übergebenopenssl x509 -text < $CRT | grep 'DNS:' | sed 's/\s*DNS:\([a-z0-9.\-]*\)[,\s]\?/\1 /g'
Geoffrey,
Bitte scrollen Sie nach unten: Die Antwort von panticz.de ist besser ;-)
lucaferrario
8

Mit diesem Befehl können Sie die Domains auflisten (unter Linux getestet):

cat cert.pem | openssl x509 -text | grep DNS
panticz.de
quelle
Dieser gibt eine bessere Ausgabe als die akzeptierte Antwort.
VaTo
Ja, dies sollte stattdessen die akzeptierte Antwort sein.
Kal
0

Wenn Sie wollen einfach nur sehen , die SANs, grep DNS:ist die offensichtliche Lösung.

Wenn Sie eine übersichtlichere Liste zur weiteren Verarbeitung haben möchten, können Sie mit diesem Perl-Regex nur die Namen extrahieren: @names=/\sDNS:([^\s,]+)/g

Beispielsweise:

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

Welches würde dies ausgeben:

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

So könnte man das pfeifen while read name; do echo "processing $name ..."; doneusw.

Oder für eine durch Kommata getrennte Liste in einer Zeile, ersetzen join("\n",mitjoin(",",

(Mit dem -0777Schalter für Perl wird die gesamte Eingabe auf einmal anstatt zeilenweise gelesen.)

mivk
quelle