Alle Domains aller Zertifikate aller virtual hosts auflisten

Bei vielen konfigurierten virtual hosts (vhosts) kann man irgendwann die Übersicht verlieren vie viele Zertifikate und – im Fall von SAN Zertifikaten – wie viele Domains dort konfiguriert sind.

Das folgende Script erledigt diese Aufgabe für nginx, kann jedoch auch einfach für apache umgeschrieben werden.

#!/bin/bash

# Lists all domains in all certificates in all nginx vhosts sorted

CONFDIR="/etc/nginx/sites-enabled"

for cert in `grep 'ssl_certificate ' $CONFDIR/*.conf |grep -v '\#' | awk '{ print $3 }' | sed -e 's/;//g' | sort | uniq`; do
  echo "Certificate: $cert"
  for domain in `openssl x509 -in $cert -text -noout | grep 'DNS' | sed -e 's/DNS://g' | sed -e 's/, /\n/g' | sed -e 's/^[[:space:]]*//' |sort | uniq`; do
    echo "  - $domain"
  done
  echo "TOTAL DOMAINS: `openssl x509 -in $cert -text -noout | grep 'DNS' | sed -e 's/DNS://g' | sed -e 's/, /\n/g' | sed -e 's/^[[:space:]]*//' |sort | uniq | wc -l`"
  echo -e "\n"
done
echo "TOTAL CERTIFICATES: `grep 'ssl_certificate ' $CONFDIR/*.conf |grep -v '\#' | awk '{ print $3 }' | sed -e 's/;//g' | sort | uniq | wc -l`"

Published by

Steven Varco

Steven ist ein Redhat RHCE-Zertifizierter Linux-Crack und ist seit über 18 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.