Liste des domaines sur un certificat SSL UCC / SAN


15

Existe-t-il un moyen de répertorier tous les domaines sur un certificat SSL SAN / UCC (idéalement en utilisant la ligne de commande sous linux / os x)?

De toute évidence, il doit y avoir un moyen d'extraire les données, car les navigateurs peuvent le faire. Malheureusement, je peux voir la liste mais je ne peux pas la copier-coller.

Réponses:


25

openssl x509 -text < foo.crt devrait faire l'affaire.


3
Pour la postérité, c'est la commande complète que j'ai utilisée, puisque je le faisais pour un autre serveur:openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text
Jordan Reiter

3
Pour obtenir une liste de domaines délimitée par un espace propre, vous pouvez la passer par grep et sed comme çaopenssl x509 -text < $CRT | grep 'DNS:' | sed 's/\s*DNS:\([a-z0-9.\-]*\)[,\s]\?/\1 /g'
Geoffrey

Faites défiler vers le bas: la réponse de panticz.de est meilleure ;-)
lucaferrario

10

Vous pouvez lister les domaines avec cette commande (testé sur linux):

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

Celui-ci donne un meilleur résultat que la réponse acceptée.
VaTo

Oui, cela devrait plutôt être la réponse acceptée.
Kal

1

Si vous voulez juste voir les SAN, grep DNS:c'est la solution évidente.

Si vous souhaitez avoir une liste plus propre à traiter davantage, vous pouvez utiliser cette expression rationnelle Perl pour extraire uniquement les noms: @names=/\sDNS:([^\s,]+)/g

Par exemple:

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

Qui produirait ceci:

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

Ainsi, vous pouvez diriger cela vers while read name; do echo "processing $name ..."; doneetc.

Ou pour une liste séparée par des virgules sur une ligne, remplacez join("\n",parjoin(",",

(Le -0777commutateur pour perl fait lire l'intégralité de l'entrée à la fois au lieu de ligne par ligne)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.