Zum Inhalt

CSR-Generierung für Serverzertifikate

Zertifikatsantragsdateien (Certificate Signing Requests, CSRs) können mit verschiedenen Werkzeugen erstellt werden. Hier werden die verbreitetsten Werkzeuge — GnuTLS, OpenSSL, Java Keystore and Windows certutil — beschrieben.

Zertifikat konfigurieren

Bitte geben Sie den Hostnamen an, für den Sie ein Zertifikat beantragen müssen:

Verfahren und Schlüsselgröße/-typ auswählen:

Mit OpenSSL (Version 3.x nötig) können Schlüssel und Antragsdatei über die Kommandozeile generiert werden. FQHN ist der vollqualifizierte Hostname.

openssl req -newkey EC -pkeyopt ec_paramgen_curve:P-384 -pkeyopt ec_param_enc:named_curve -noenc \
 -out 'FQHN.req' \
 -keyout 'FQHN.key' \
 -subj '/CN=FQHN'

Der Parameter -noenc sorgt dafür, dass der geheime Schlüssel unverschlüsselt gespeichert wird. Das ist bei den meisten Serveranwendungen sinnvoll, da beim Start des Dienstes kein Passwort eingegeben werden muss. Um den geheimen Schlüssel mit einem Passwort zu verschlüsseln, lassen Sie einfach -noenc weg.

Um Subject Alternative Names (SANs) zu setzen, kann folgender Befehl verwendet werden. Dabei nicht vergessen, die tatsächlichen Hostnamen zu ersetzen. Jedem Hostname muss DNS: vorangestellt werden, mehrere Einträge sind mit , zu separieren.

openssl req -newkey EC -pkeyopt ec_paramgen_curve:P-384 -pkeyopt ec_param_enc:named_curve -noenc \
 -out 'FQHN.req' \
 -keyout 'FQHN.key' \
 -subj '/CN=FQHN' \
 -addext 'subjectAltName = DNS:weiterer-hostname.ifmb.kit.edu,DNS:noch-ein-hostname.ifmb.kit.edu'

Zertifikat konfigurieren

Bitte geben Sie den Hostnamen an, für den Sie ein Zertifikat beantragen müssen:

Verfahren und Schlüsselgröße/-typ auswählen:

Mit GnuTLS können Schlüssel und Antragsdatei über die Kommandozeile generiert werden. FQHN ist der vollqualifizierte Hostname.

Verwenden Sie folgenden Befehl, um den privaten Schlüssel zu generieren:

certtool --generate-privkey \
  --key-type=ecdsa --curve=secp384r1 \
  --outfile 'FQHN.key'

Legen Sie eine Template-Datei namens FQHN.txt mit folgendem Inhalt:

organization = "Karlsruhe Institute of Technology"
locality = "Karlsruhe"
state = "Baden-Wuerttemberg"
country = DE
# CN; bitte einen vollqualifizierten Hostnamen verwenden
cn = "FQHN"
dns_name = "FQHN"

Um Subject Alternative Names (SANs) zu setzen, fügen Sie diese als dns_name der zuvor angelegten Datei FQHN.txt an:

dns_name = "weiterer-hostname.ifmb.kit.edu"
dns_name = "noch-ein-hostname.ifmb.kit.edu"

Erzeugen Sie nun die Antragsdatei:

certtool --generate-request --hash SHA256 --no-text \
 --load-privkey 'FQHN.key' \
 --template 'FQHN.txt' \
 --outfile 'FQHN.req'

Zertifikat konfigurieren

Bitte geben Sie den Hostnamen an, für den Sie ein Zertifikat beantragen müssen:

Verfahren und Schlüsselgröße/-typ auswählen:

Zunächst muss ein Schlüsselpaar aus privatem und öffentlichem Schlüssel generiert werden. Dies kann mit folgendem Befehl über die Kommandozeile erfolgen:

keytool -genkey \
 -alias 'FQHN' \
 -dname 'CN=FQHN' \
 -keyalg EC -groupname secp384r1 \
 -keystore 'FQHN.keystore'

Aus diesem Schlüsselpaar kann jetzt der Zertifikatsantrag generiert werden:

keytool -certreq \
 -alias 'FQHN' \
 -file 'FQHN.req' \
 -keystore 'FQHN.keystore'

Zertifikat konfigurieren

Bitte geben Sie den Hostnamen an, für den Sie ein Zertifikat beantragen müssen:

Verfahren und Schlüsselgröße/-typ auswählen:

Info

Niemand bei der KIT-CA benutzt diesen Weg, wir haben also nur sehr begrenzt Erfahrung damit. Bei Problemen hilft potenziell ein Blick in die offizielle Dokumentation (certreq.exe, certutil.exe).

Antragsdateien können unter Windows auch auf der Kommandozeile erstellt werden. Hierfür muss zunächst eine Datei FQHN.txt mit folgendem Inhalt erstellt werden:

[NewRequest]
Exportable = TRUE
KeyAlgorithm = ECDSA_P384
HashAlgorithm = sha256
MachineKeySet = TRUE
Subject = "CN=FQHN"
RequestType = PKCS10
UserProtected = FALSE

Um Subject Alternative Names (SANs) zu setzen, fügen Sie eine neue Sektion [Extensions] in die zuvor erstellte Datei FQHN.txt mit den gewünschten Hostnamen (zwischen _continue_ = "DNS= und &") ein:

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=weiterer-hostname.ifmb.kit.edu&"
_continue_ = "DNS=noch-ein-hostname.ifmb.kit.edu&"

Die eigentliche Antragsdatei kann danach mit dem folgenden Aufruf erstellt werden. Hierbei wird die Datei FQHN.req mit der neu generierten Antragsdatei überschrieben.

certreq -new FQHN.txt FQHN.req

Details Ihres Zertifikatsantrages können Sie mit folgendem Befehl ansehen:

certutil -dump FQHN.req