Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
opensslcert [2016/04/22 13:39] – [Subject Alternative Names] schyle | opensslcert [2023/01/13 12:44] (aktuell) – nw75 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Serverzertifikat mit openSSL | + | ====== |
- | Auf dieser Seite zeigen wir Ihnen, wie Sie mit openSSL ein Schlüsselpaar generieren, den | ||
- | CSR (Certificate Signing Request) erzeugen und schließlich das von der Uni-FR CA gelieferte Zertifikat in das Server- | ||
- | System einbauen. | ||
- | |||
- | Hintergrundinformationen dazu finden Sie in dem Dokument: **[[serverzertifikat|Serverzertifikat beantragen]]**. | ||
- | |||
- | Die Anleitung der DFN PKI: **[[https:// | ||
- | |||
- | Die Anleitung des DFN CERT: **[[http:// | ||
Auf Linux-Systemen sollte openSSL grundsätzlich bereits installiert sein. | Auf Linux-Systemen sollte openSSL grundsätzlich bereits installiert sein. | ||
Zeile 15: | Zeile 6: | ||
Für Windows-Systeme können Sie das Programmpaket hier herunterladen: | Für Windows-Systeme können Sie das Programmpaket hier herunterladen: | ||
**[[http:// | **[[http:// | ||
- | |||
Zeile 25: | Zeile 15: | ||
* Die Abteilung ist das Rechenzentum | * Die Abteilung ist das Rechenzentum | ||
* Der Schlüsselbund zur Aufbewahrung der eigenen Schlüssel sei / | * Der Schlüsselbund zur Aufbewahrung der eigenen Schlüssel sei / | ||
- | * Der Schlüssel soll auf hohe Sicherheit (Länge | + | * Der Schlüssel soll auf hohe Sicherheit (Länge |
- | * Der Gültigkeitszeitraum wird auf die maximale von der Uni-FR CA akzeptierten Zeitdauer von 5 Jahren (1825 Tage) konfiguriert | + | |
\\ | \\ | ||
Es soll hier ein Schlüsselpaar inclusive einem selbstsignierten Zertifikat mit folgendem eindeutigen Name erzeugt werden: | Es soll hier ein Schlüsselpaar inclusive einem selbstsignierten Zertifikat mit folgendem eindeutigen Name erzeugt werden: | ||
Zeile 40: | Zeile 29: | ||
< | < | ||
ohne Passwortschutz: | ohne Passwortschutz: | ||
- | $ openssl genrsa | + | $ openssl genrsa |
mit Passwortschutz: | mit Passwortschutz: | ||
- | $ openssl genrsa | + | $ openssl genrsa |
enter des-ede3-cbc encryption password: ***** | enter des-ede3-cbc encryption password: ***** | ||
Verifying - enter des-ede3-cbc encryption password: ***** | Verifying - enter des-ede3-cbc encryption password: ***** | ||
Zeile 62: | Zeile 51: | ||
< | < | ||
[ req ] | [ req ] | ||
- | default_bits | + | default_bits |
distinguished_name | distinguished_name | ||
prompt | prompt | ||
Zeile 73: | Zeile 62: | ||
OU = Rechenzentrum | OU = Rechenzentrum | ||
CN = server1.uni-freiburg.de | CN = server1.uni-freiburg.de | ||
- | emailAddress | ||
</ | </ | ||
Zeile 82: | Zeile 70: | ||
< | < | ||
[ req ] | [ req ] | ||
- | default_bits | + | default_bits |
distinguished_name | distinguished_name | ||
prompt | prompt | ||
Zeile 94: | Zeile 82: | ||
OU = Rechenzentrum | OU = Rechenzentrum | ||
CN = server1.uni-freiburg.de | CN = server1.uni-freiburg.de | ||
- | emailAddress | ||
[ v3_req ] | [ v3_req ] | ||
Zeile 116: | Zeile 103: | ||
< | < | ||
- | $ openssl req -new -days 1825 -key / | + | $ openssl req -new -sha256 |
</ | </ | ||
Damit erzeugen Sie die **Request-Datei** unter dem Namen **server1.csr** unter Verwendung der zuvor erzeugten Konfigurationsdatei **req_config**. | Damit erzeugen Sie die **Request-Datei** unter dem Namen **server1.csr** unter Verwendung der zuvor erzeugten Konfigurationsdatei **req_config**. | ||
+ | Bei Windows XP funktioniert dieses Verfahren nicht! | ||
Die Request-Datei geben Sie zur Kontrolle als lesbaren Text mit folgendem Kommando aus: | Die Request-Datei geben Sie zur Kontrolle als lesbaren Text mit folgendem Kommando aus: | ||
Zeile 128: | Zeile 115: | ||
</ | </ | ||
- | Die Datei server1.csr können Sie im Web-Interface der Uni-FR CA | ||
- | |||
- | * **https:// | ||
- | |||
- | direkt über die Schaltfläche **Durchsuchen** hochladen lassen. | ||
- | |||
- | |||
- | Das Antragsverfahren mit Hilfe des Web-Interface der Uni-FR CA ist beschrieben in dem Dokument | ||
- | |||
- | * **[[serverzertifikat|Serverzertifikat beantragen]]** | ||
\\ | \\ | ||
- | ===== Zertifikat und privaten Schlüssel installieren ===== | ||
- | |||
- | Sobald Sie das Serverzertifikat von der Uni-FR CA per Mail erhalten haben, speichern Sie die PEM-formatierte Datei des Attachements ab, z.B. unter dem Namen **server1.pem**. | ||
- | |||
- | Außerdem speichern Sie das **[[https:// | ||
- | |||
- | Die Installation des Zertifikates hängt von den Anforderungen des Dienstes ab, für den es beantragt wurde. | ||
- | |||
- | Im vorliegenden **Beispiel** soll gezeigt werden, wie das Zertifikat für **Jakarta Tomcat** zugänglich gemacht wird. | ||
- | |||
- | Als erstes importieren Sie die drei Zertifikate der Zertifikatskette in die keystore-Datei: | ||
- | |||
- | < | ||
- | ohne Passwortschutz: | ||
- | $ cat g_deutsche-telekom-root-ca-2.pem >>/ | ||
- | $ cat g_dfn_intermediatecert.pem >>/ | ||
- | $ cat g_unifrcacert.pem >>/ | ||
- | $ cat server1.pem >>/ | ||
- | |||
- | mit Passwortschutz (bei bisher ungeschütztem .keystore): | ||
- | $ cat g_deutsche-telekom-root-ca-2.pem >>/ | ||
- | $ cat g_dfn_intermediatecert.pem >>/ | ||
- | $ cat g_unifrcacert.pem >>/ | ||
- | $ cat server1.pem >>/ | ||
- | $ cat / | ||
- | enter des-ede3-cbc encryption password: ***** | ||
- | Verifying - enter des-ede3-cbc encryption password: ***** | ||
- | |||
- | mit Passwortschutz (bei bisher geschütztem .keystore): | ||
- | $ openssl enc -d -des3 -in / | ||
- | enter des-ede3-cbc decryption password: ***** | ||
- | $ cat g_deutsche-telekom-root-ca-2.pem >>/ | ||
- | $ cat g_dfn_intermediatecert.pem >>/ | ||
- | $ cat g_unifrcacert.pem >>/ | ||
- | $ cat server1.pem >> | ||
- | $ openssl enc -e -des3 -in tempstore -out / | ||
- | enter des-ede3-cbc encryption password: ***** | ||
- | Verifying - enter des-ede3-cbc encryption password: ***** | ||
- | $ rm tempstore | ||
- | </ | ||
- | |||
- | Nun teilen Sie **tomcat** in der Datei **server.xml** im **conf**-Verzeichnis mit, wo das Server-Zertifikat zu finden ist. | ||
- | Falls Sie den Zertifikatsspeicher mit einem Passwort geschützt haben, müssen Sie dieses hier im Klartext (!) eingeben. | ||
- | |||
- | < | ||
- | ... | ||
- | <!-- Define a SSL HTTP/1.1 Connector on port 443 --> | ||
- | < | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | ... | ||
- | </ | ||
- | Das keystore-Password wurde mit ' | ||
- | In diesem Fall ist also die Schlüsseldatei mit einem Passwort geschützt.\\ | ||
- | **Sie müssen aber nun dafür sorgen, dass die Datei server.xml mit dem Klartextpasswort nicht von unbefugten gelesen werden kann.** | ||
- | \\ | ||
- | Falls Sie den **Apache Webserver** mit mod_ssl einsetzen, tragen Sie die Keystore-Datei wie sie im obigen Beispiel hergestellt wurde, nach folgendem Schema in die Konfigurationsdatei **httpd-ssl.conf** ein: | ||
- | |||
- | < | ||
- | ... | ||
- | # | ||
- | # Point SSLCertificateFile at a PEM encoded certificate. | ||
- | # the certificate is encrypted, then you will be prompted for a | ||
- | # pass phrase. | ||
- | # in mind that if you have both an RSA and a DSA certificate you | ||
- | # can configure both in parallel (to also allow the use of DSA | ||
- | # | ||
- | SSLCertificateFile "/ | ||
- | |||
- | # | ||
- | # If the key is not combined with the certificate, | ||
- | # | ||
- | # | ||
- | # both in parallel (to also allow the use of DSA ciphers, etc.) | ||
- | SSLCertificateKeyFile "/ | ||
- | ... | ||
- | </ | ||
- | |||
- | \\ | ||
- | |||
- | ===== Zertifikatskette bereitstellen ===== | ||
- | |||
- | Wenn der Server die Zertifikatskette (SSLCertificateChainFile) nicht zum Client überträgt, | ||
- | |||
- | In der SSL-Konfigurationsdatei von Apache findet man dazu den Parameter " | ||
- | |||
- | Speichern Sie die Zertifikatskette, | ||
- | |||
- | < | ||
- | # | ||
- | # Point SSLCertificateChainFile at a file containing the | ||
- | # | ||
- | # | ||
- | # the referenced file can be the same as SSLCertificateFile | ||
- | # when the CA certificates are directly appended to the server | ||
- | # | ||
- | SSLCertificateChainFile "/ | ||
- | ... | ||
- | </ | ||
- | |||
- | |||
- | Normalerweise müssen Sie die Anwendungen anschließend neu starten, damit die Konfiguration wirksam wird und das Zertifikat verwendet werden kann. | ||
- | |||
- | \\ | ||
- | |||
- | ===== Literatur ===== | ||
- | |||
- | * http:// | ||
- | * http:// | ||
- | * http:// | ||
- | * http:// | ||
- | * http:// | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | {{tag> | + | {{tag> |