Anfordern eines Server-Zertifikats
Hier wird ein manuelles Verfahren beschrieben. Bitte verwenden Sie bevorzugt Let’s-Encrypt-Zertifikate, die per ACME-Verfahren automatisiert erneuert werden.
Erzeugen eines TLS-Schlüssels und Anfordern eines X.509-Zertifikats für einen sicheren Webserver (https)
Sie können natürlich auch andere Protokolle als HTTP absichern und damit gesicherte IMAP-, SMTP-Server usw. betreiben. Die Vorgehensweise ist analog, die Konfiguration des Servers unterscheidet sich natürlich von der eines Webservers.
0. Voraussetzungen:
- Installation eines SSL/TLS-Pakets, z. B. OpenSSL
- Installation eines https-fähigen Webservers, z. B. Apache httpd
- Die lizenzrechtlichen Bestimmungen für die kryptografische Software sind zu beachten!
Die folgenden Kommando-Beispiele sind gültig bei Verwendung von OpenSSL.
1. Erzeugen eines privaten RSA-Schlüssels für den Server:
Wenn das Zertifikat verlängert werden soll, kann dieser Schritt entfallen, wenn der private Schlüssel mindestens 3072 Bit lang ist. (Für Zertifikate der DFN-Verein Community PKI (weitere Informationen) müssen es 4096 Bit sein.)
- Erzeugen des Schlüssels: Schlüssellänge 3072 Bit (derzeit können nur Zertifikate für RSA-Schlüssel ausgestellt werden; kleinere Schlüssellängen nur noch bis 2022 vom BSI empfohlen):
openssl genrsa -aes256 -out server.key.pem 3072
- Anschauen des Schlüssel-Inhaltes:
openssl rsa -noout -text -in server.key.pem
- Evtl. ungesichert ablegen - (braucht man zum problemlosen Start des Webservers). VORSICHT: Zugriffsrechte setzen (nur lesbar für root)!
openssl rsa -in server.key.pem -out server.key chown root server.key; chmod 400 server.key
2. Certificate Signing Request (CSR) erzeugen:
-
openssl req -new -key server.key.pem -out server.csr
Achtung, jetzt wird's spannend! Die Namen sind exakt so anzugeben!You are about to be asked to enter information that will be incorporated into your certificate request. ... ----- Country Name (2 letter code) []: DE State or Province Name (full name) []: Sachsen Locality Name (eg, city) []: Chemnitz Organization Name (eg, company) []:Technische Universitaet Chemnitz Organizational Unit Name (eg, section) []:Bereich Common Name (eg, YOUR name) []:servername.bereich.tu-chemnitz.de Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Dadurch wird die Datei server.csr erzeugt.
- Anschauen des Inhaltes:
openssl req -noout -text -in server.csr
Hier nochmal die exakte Schreibweise der Namens-Komponenten überprüfen, zum Beispiel:Subject C=DE, ST=Sachsen, L=Chemnitz, O=Technische Universitaet Chemnitz, OU=Universitaetsrechenzentrum, CN=test.hrz.tu-chemnitz.de
- Wenn Sie ein Zertifikat für mehrere Servernamen benötigen – ein sog. Multi-Domain- oder SAN-Zertifikat, finden Sie eine Anleitung unter Openssl Multi-Domain CSR erstellen.
3. Zertifikat anfordern:
Bitte senden Sie den CSR an ca@….
Server testen
Nach erfolgreichem Start kann der Server getestet werden; am Beispiel eines sicheren Webservers:
- Mit einem Webbrowser:
https://server.name/
. Schauen Sie sich das Zertifikat mit Klick auf das Schloss-Symbol an. - Mit dem
s_client
-Werkzeug:openssl s_client -connect server.name:443 GET / HTTP/1.0
- Wenn der Server vom Internet aus erreichbar ist: SSL Server Test von SSL Labs