Eine Zertifikatanforderung (CSR) inspizieren

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.

Editor mit test.req: Zertifikatanforderung im Base64-Format, beginnt mit -----BEGIN NEW CERTIFICATE REQUEST-----

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}

Eingabeaufforderung: certutil -dump test.req zeigt PKCS10 Certificate Request, Subject EMPTY, RSA mit 2048 bits

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..."

Zertifizierungsstelle, Pending Requests: Kontextmenü All Tasks mit Export Binary Data... für Request ID 165512

In der nachfolgenden Auswahl wählt man die Datenbank-Spalte "Binary Request" und die Option "View formatted text version of data".

Dialog "Export Binary Data": Spalte "Binary Request" und Option "View formatted text version of data" markiert

Anschließend erhält man die gleiche Ansicht wie beim zuvorigen certutil-Befehl, jedoch in eine Textdatei exportiert.

Editor, Binary Request 165513.tmp: Subject CN=www.adcslabor.de der PKCS10 Certificate Request markiert

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...".

Zertifizierungsstelle, Issued Certificates: Menü "View" mit "Add/Remove Columns..."

Man fügt die Spalte "Binary Request" durch Auswahl und Klick auf "Add ->" hinzu.

Dialog "Add/Remove Columns": Spalte "Binary Request" unter Available columns markiert, Schaltfläche "Add"

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, ist 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.

Editor, Binary Request: Subject Alternative Name "DNS Name=www.adcslabor.de" markiert