Oft möchte man eine Zertifikatanforderung vor der Übermittlung an eine Zertifizierungsstelle – oder vor der Ausstellung des Zertifikats – überprüfen, ob sie die gewünschten Werte beinhaltet.
Nachfolgend wird beschrieben, wie man dies erreichen kann.
Es gibt zwei Möglichkeiten, eine Zertifikatanforderung zu inspizieren:
- Eine Zertifikatanforderung vor der Übermittlung inspizieren
- Eine Zertifikatanforderung nach der Übermittlung inspizieren
Eine Zertifikatanforderung vor der Übermittlung inspizieren
Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken, um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.
Angenommen, eine Zertifikatanforderung liegt als Textdatei vor. Öffnet man diese, wird man entweder auf binäre Daten oder auf die BASE64 kodierte Variante wie im Bild zu sehen stoßen.
In jeder aktuellen Windows Version befindet sich das Dienstprogramm certutil, mit welchem man eine solche Datei dekodieren und lesbar machen kann. Nachfolgend ein Beispiel:
certutil -dump {Dateiname-Zertifikatanforderung}
Eine Zertifikatanforderung nach der Übermittlung inspizieren
Angenommen, die Zertifikatanforderung wurde bereits an die Zertifizierungsstelle übermittelt, das Zertifikat aber nicht direkt ausgestellt, sondern für die Genehmigung durch einen Zertifikatmanager konfiguriert, wie es beispielsweise für Webserver-Zertifikate empfohlen wird.
In diesem Fall kann ein Zertifikatmanager die ausstehende Zertifikatanforderung über die Zertifizierungsstellen-Verwaltungskonsole (certsrv.msc) überprüfen. Unter "Pending Requests" klickt man mit rechts auf die Zertifikatanforderung und wählt "All Tasks" – "Export Binary Data…"
In der nachfolgenden Auswahl wählt man die Datenbank-Spalte "Binary Request" und die Option "View formatted text version of data".
Anschließend erhält man die gleiche Ansicht wie beim zuvorigen certutil-Befehl, jedoch in eine Textdatei exportiert.
Eine Zertifikatanforderung nach der Ausstellung des Zertifikats inspizieren
Ist das Zertifikat bereits ausgestellt, wird die dazugehörige Zertifikatanforderung dennoch in der Zertifizierungsstellen-Datenbank gespeichert und kann somit auch nach der Ausstellung noch abgerufen werden.
Hierzu navigiert man zu "Issued Certificates" und wählt im Menü die Option "View" – "Add/Remove Columns…".
Man fügt die Spalte "Binary Request" durch Auswahl und Klick auf "Add ->" hinzu.
Anschließend kann die Zertifikatanforderung analog zur vorigen Prozedur inspiziert werden.
Nach welchen Informationen sollte ein Zertifikatmanager suchen
Neben dem Common Name sollte unbedingt nach dem Subject Alternative Name (SAN) Ausschau gehalten werden. Gemäß RFC2818 soll dieser zumindest für HTTPS bevorzugt verwendet werden, um die Identität abzubilden. Sofern ein SAN vorhanden ist, ist dieser weiter unten bei den Zertifikaterweiterungen (Certificate Extensions) zu finden.
Beinhaltet eine Zertifikatanforderung keinen Subject Alternative Name (SAN), kann dieser durch den Zertifikatmanager nachträglich hinzugefügt werden, was für Webserver-Zertifikate empfohlen wird.
Unter gewissen Umständen kann das Subject einer Zertifikatanforderung durch einen Zertifikatmanager verändert werden. Wie das erreicht wird, im Artikel "Das Subject (Betreff, Antragsteller) einer Zertifikatanforderung (CSR) nachträglich verändern" beschrieben.
Beide Informationen sollten auf Konformität zur eigenen Zertifikatrichtlinie überprüft werden. Zertifikatanforderungen, die beispielsweise unerlaubte Domänennamen beinhalten, sollten abgelehnt werden.
7 Gedanken zu „Eine Zertifikatanforderung (CSR) inspizieren“
Kommentare sind geschlossen.