Create SAN CSR with certutil

Hallo zusammen,

Wie man Certificate Signing Requests (CSR) mit Subject Alternative Names (SAN) mittels Openssl oder über Custom Request in der Zertifikatskonsole macht habe ich ja schon gebloggt.

Heute zeige ich euch, wie man einen Zertifikatsrequest mit dem Komandozeilentool certreq erstellt.

Als erstes muss eine “RequestPolicy.inf” Datei erstellt werden. Die sieht etwa so aus

[NewRequest]
FriendlyName = "fe2013.icewolf.ch"
Subject = "CN=fe2013.icewolf.ch, O=Icewolf, OU=IT, S=BE, L=Bern, C=CH"
;Because SSL/TLS does not require a Subject name when a SAN extension is included, the certificate Subject name can be empty.
;If you are using another protocol, verify the certificate requirements.

RequestType=PKCS10
Exportable = TRUE    ; TRUE = Private key is exportable
KeyLength = 2048     ; Valid key sizes: 1024, 2048, 4096, 8192, 16384
KeySpec = 1          ; Key Exchange Required for encryption
KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE | CERT_KEY_ENCIPHERMENT_KEY_USAGE"
ProviderName = "Microsoft Software Key Storage Provider"

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication
OID=1.3.6.1.5.5.7.3.2 ; Client Authentication

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=fe2013.icewolf.ch&" ; put your subject alternate names here
_continue_ = "dns=dialin.icewolf.ch&"
_continue_ = "dns=meet.icewolf.ch&"
_continue_ = "email=a.bohren@icewolf.ch"

Certificate Signing Request erstellen

Mit dem folgenden Befehl erstellt man mithilfe von certreq und der RequestPolicy.inf den CSR

certreq -new -machine C:\Install\RequestPolicy.inf C:\Install\Request.csr

Certificate Signing Request prüfen

certutil -dump C:\Install\Request.csr

Das Zertifikat

Nach dem Ausstellen des Zertifikats sieht das dann so aus.

CSR an Online Certification Authority senden

Mit Certreq kann man den CSR auch gleich an die Windows Onlice Certification Authority senden.

Dafür muss man aber im “RequestPolicy.inf” noch die Zertifikatsvorlage vor dem austellen des CSR spezifizieren

[RequestAttributes]
CertificateTemplate = Webserver

Der so erstellte CSR kann mit dem folgenden Befehl an die Online CA gesendet werden. Das Popup fragt bei welcher CA man den Request plazieren will.

certreq -submit certificate_request.csr

Wird das Zertifikat gleich ausgestellt, so kann man es gleich abspeichern.

Muss der Request zuerst manuell Approved werden, so kann man das Zertifikat später mit der ID holen

certreq -retrieve 89

Nun kann das Zertifikat installiert werden

certreq -accept -machine C:\Install\test.cer

Danach sieht man das Zertifikat im Zertifikatsspeicher von Windows

Weitere Informationen:

Grüsse
Andres Bohren

Security Logo

Windows Logo