Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
opensslcert [2012/04/17 14:08] – [Serverzertifikat mit openSSL bearbeiten] bushopensslcert [2023/01/10 15:39] – [Serverzertifikat mit openSSL bearbeiten] rwelte
Zeile 2: Zeile 2:
  
 Auf dieser Seite zeigen wir Ihnen, wie Sie mit openSSL ein Schlüsselpaar generieren, den Auf dieser Seite zeigen wir Ihnen, wie Sie mit openSSL ein Schlüsselpaar generieren, den
-CSR erzeugen und schließlich das von der Uni-FR CA gelieferte Zertifikat in das Server-+CSR (Certificate Signing Request) erzeugen und schließlich das von der Uni-FR CA gelieferte Zertifikat in das Server-
 System einbauen. System einbauen.
  
-Hintergrundinformationen dazu finden Sie in dem Dokument **[[serverzertifikat|Serverzertifikat beantragen]]**. 
  
 Die Anleitung der DFN PKI: **[[https://www.pki.dfn.de/fileadmin/PKI/anleitungen/Anleitung_Nutzung_OpenSSL.pdf|Anleitung zur Nutzung von OpenSSL in der DFN-PKI (PDF-Datei)]]** Die Anleitung der DFN PKI: **[[https://www.pki.dfn.de/fileadmin/PKI/anleitungen/Anleitung_Nutzung_OpenSSL.pdf|Anleitung zur Nutzung von OpenSSL in der DFN-PKI (PDF-Datei)]]**
Zeile 22: Zeile 21:
  
 Im vorliegenden Beispiel wollen wir folgendes voraussetzen: Im vorliegenden Beispiel wollen wir folgendes voraussetzen:
-  * Die Internet-Adresse des Servers sei server1.ruf.uni-freiburg.de+  * Die Internet-Adresse des Servers sei server1.uni-freiburg.de
   * Die Abteilung ist das Rechenzentum   * Die Abteilung ist das Rechenzentum
   * Der Schlüsselbund zur Aufbewahrung der eigenen Schlüssel sei /var/lib/.keystore\\ (unter Windows üblicherweise C:\Dokumente und Einstellungen\(Benutzername)\.keystore)   * Der Schlüsselbund zur Aufbewahrung der eigenen Schlüssel sei /var/lib/.keystore\\ (unter Windows üblicherweise C:\Dokumente und Einstellungen\(Benutzername)\.keystore)
-  * Der Schlüssel soll auf hohe Sicherheit (Länge 2048 Bit) eingestellt sein +  * Der Schlüssel soll auf hohe Sicherheit (Länge 4096 Bit) eingestellt sein.  
-  * Der Gültigkeitszeitraum wird auf die maximale von der Uni-FR CA akzeptierten Zeitdauer von 5 Jahren (1825 Tage) konfiguriert+    * Bis 30. September 2019 kann auch ein neues Zertifikat mit 2084 Bit Schlüssellänge erstellt werden. Die Güligkeitsdauer des Zertifikats darf dann allerdings, nach BSI-Richtlinien, das Datum 31.12.2022 nicht überschreiten. 
 +    * **Spätestens ab 30. September 2019 muss bei einem neuen Zertifikat eine Schlüssellänge von 4096 Bit verwendet werden.**  
 +  * Der Gültigkeitszeitraum wird auf die maximale von der Uni-FR CA akzeptierten Zeitdauer von 27 Monate 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:
-<code>DN: CN=server1.ruf.uni-freiburg.de,OU=Rechenzentrum,O=Universitaet Freiburg,C=DE</code>+<code>DN: CN=server1.uni-freiburg.de,OU=Rechenzentrum,O=Albert-Ludwigs-Universitaet Freiburg,L=Freiburg im Breisgau,ST=Baden-Wuerttemberg,C=DE</code>
  
-Für die Uni-FR CA sind die Komponenten O und C obligatorisch: **O=Universitaet Freiburg,C=DE**.\\ +Für die Uni-FR CA sind die Komponenten O und C obligatorisch: **O=Albert-Ludwigs-Universitaet Freiburg,L=Freiburg im Breisgau,ST=Baden-Wuerttemberg,C=DE**.\\ 
 Das Element OU kann auch mehrfach auftreten, falls Sie z.B. verschiedene Unterabteilungen im DN nicht nur durch den CN des Servers kenntlich machen wollen. Das Element OU kann auch mehrfach auftreten, falls Sie z.B. verschiedene Unterabteilungen im DN nicht nur durch den CN des Servers kenntlich machen wollen.
  
  
 Das OpenSSL-Kommando zur Herstellung eines Schlüsselpaares lautet folgendermaßen:\\ Das OpenSSL-Kommando zur Herstellung eines Schlüsselpaares lautet folgendermaßen:\\
-(Die Benutzer-Eingabezeilen sind in den Beispielen mit dem System-Promp '$' gekennzeichnet)+(Die Benutzer-Eingabezeilen sind in den Beispielen mit dem System-Prompt <html>'$'</html> gekennzeichnet)
  
 <code> <code>
 ohne Passwortschutz: ohne Passwortschutz:
-$ openssl genrsa  -out  /var/lib/.keystore 2048+$ openssl genrsa  -out  /var/lib/.keystore 4096
  
 mit Passwortschutz: mit Passwortschutz:
-$ openssl genrsa  -des3 -out  /var/lib/.keystore 2048+$ openssl genrsa  -des3 -out  /var/lib/.keystore 4096
 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 63:
 <code> <code>
 [ req ] [ req ]
-default_bits           2048+default_bits           4096
 distinguished_name     = req_distinguished_name distinguished_name     = req_distinguished_name
 prompt                 = no prompt                 = no
  
 +[ req_distinguished_name ]
 +C                      = DE
 +ST                     = Baden-Wuerttemberg
 +L                      = Freiburg im Breisgau
 +O                      = Albert-Ludwigs-Universitaet Freiburg
 +OU                     = Rechenzentrum
 +CN                     = server1.uni-freiburg.de
 +</code>
 +
 +==== Subject Alternative Names ====
 +
 +Falls Sie zusätzliche Hostnamen (Subject Alterantive Names, SANs) als Alternativen in das Zertifikat aufgenommen haben wollen, müssen Sie die Konfigurationsdatei in der folgenden Art erweitern:
 +
 +<code>
 +[ req ]
 +default_bits           = 4096
 +distinguished_name     = req_distinguished_name
 +prompt                 = no
 +req_extensions         = v3_req
  
 [ req_distinguished_name ] [ req_distinguished_name ]
 C                      = DE C                      = DE
-O                      = Universitaet Freiburg+ST                     = Baden-Wuerttemberg 
 +L                      = Freiburg im Breisgau 
 +O                      = Albert-Ludwigs-Universitaet Freiburg
 OU                     = Rechenzentrum OU                     = Rechenzentrum
 CN                     = server1.uni-freiburg.de CN                     = server1.uni-freiburg.de
-emailAddress           admin@server1.uni-freiburg.de+ 
 +[ v3_req ] 
 +subjectAltName         = @alt_names 
 + 
 +[ alt_names ] 
 +DNS.1                  = server1.uni-freiburg.de 
 +DNS.2                  = alt1.uni-freiburg.de 
 +DNS.3                  = alt2.uni-freiburg.de 
 +...
 </code> </code>
 +
 +Bitte beachten Sie, dass der Common Name (CN) aus dem Abschnitt [req_distinguished_name] nochmals als SAN im Abschnitt [alt_names] aufgeführt wird, da anderenfalls einige Browser mit der Auswertung der entsprechenden Zertifikatsfelder Probleme haben.
 +
 +
 +==== Erzeugen, speichern, überprüfen ====
  
 In unserem Beispiel soll diese Datei den Namen **req_config** erhalten. In unserem Beispiel soll diese Datei den Namen **req_config** erhalten.
Zeile 80: Zeile 115:
  
 <code> <code>
-$ openssl req -new -days 1825 -key /var/lib/.keystore -out server1.csr -config req_config+$ openssl req -new -sha256 -key /var/lib/.keystore -out server1.csr -config req_config
 </code> </code>
  
 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 94: Zeile 129:
 Die Datei server1.csr können Sie im Web-Interface der Uni-FR CA Die Datei server1.csr können Sie im Web-Interface der Uni-FR CA
  
-  * **https://pki.pca.dfn.de/uni-freiburg-ca/pub**+**[[https://pki.pca.dfn.de/uni-freiburg-ca-g2/pub|Link zur DFN PKI zur Beantragung des Zertifikats]]** 
  
 direkt über die Schaltfläche **Durchsuchen** hochladen lassen. direkt über die Schaltfläche **Durchsuchen** hochladen lassen.
Zeile 109: Zeile 145:
 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**. 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://pki.pca.dfn.de/uni-freiburg-ca/pub/cacert/g_rootcert.crt|Zertifikat der Wurzelzertifizierungsstelle]]** der Deutschen Telekom, das **[[https://pki.pca.dfn.de/uni-freiburg-ca/pub/cacert/g_intermediatecacert.crt|Zwischenzertifikat der DFN-PKI]]** sowie das **[[https://pki.pca.dfn.de/uni-freiburg-ca/pub/cacert/g_cacert.crt|Zertifikat der Uni-FR CA]]** als PEM-Datei ab. Klicken Sie dazu mit der rechten Maustaste auf die Links und wählen Sie die Funktion "Ziel speichern unter...". Die heruntergeladenen Dateien werden gespeichert unter den Namen **g_deutsche-telekom-root-ca-2.pem**, **g_dfn_intermediatecert.pem** bzw. **g_unifrcacert.pem**.+Außerdem speichern Sie das **[[https://pki.pca.dfn.de/uni-freiburg-ca/pub/cacert/g_rootcert.crt|Zertifikat der Wurzelzertifizierungsstelle]]** der Deutschen Telekom, das **[[https://pki.pca.dfn.de/uni-freiburg-ca/pub/cacert/g_intermediatecacert.crt|Zwischenzertifikat der DFN-PKI]]** sowie das **[[https://pki.pca.dfn.de/uni-freiburg-ca/pub/cacert/g_cacert.crt|Zertifikat der Uni-FR CA]]** als PEM-Datei ab. Klicken Sie dazu mit der rechten Maustaste auf die Links und wählen Sie die Funktion "Ziel speichern unter...". Die heruntergeladenen Dateien werden gespeichert unter den Namen **g_deutsche-telekom-root-ca-2.crt**, **g_dfn_intermediatecert.crt** bzw. **g_unifrcacert.crt**. 
 + 
 +**Sie finden eine aktuellere Version der Zertifikatskette** **[[https://pki.pca.dfn.de/dfn-ca-global-g2/pub/cacert/chain.txt|hier]]**
  
 Die Installation des Zertifikates hängt von den Anforderungen des Dienstes ab, für den es beantragt wurde. Die Installation des Zertifikates hängt von den Anforderungen des Dienstes ab, für den es beantragt wurde.
Zeile 119: Zeile 157:
 <code> <code>
 ohne Passwortschutz: ohne Passwortschutz:
-$ cat g_deutsche-telekom-root-ca-2.pem >>/var/lib/.keystore +$ cat g_deutsche-telekom-root-ca-2.crt >>/var/lib/.keystore 
-$ cat g_dfn_intermediatecert.pem >>/var/lib/.keystore +$ cat g_dfn_intermediatecert.crt >>/var/lib/.keystore 
-$ cat g_unifrcacert.pem >>/var/lib/.keystore+$ cat g_unifrcacert.crt >>/var/lib/.keystore
 $ cat server1.pem >>/var/lib/.keystore $ cat server1.pem >>/var/lib/.keystore
  
 mit Passwortschutz (bei bisher ungeschütztem .keystore): mit Passwortschutz (bei bisher ungeschütztem .keystore):
-$ cat g_deutsche-telekom-root-ca-2.pem >>/var/lib/.keystore +$ cat g_deutsche-telekom-root-ca-2.crt >>/var/lib/.keystore 
-$ cat g_dfn_intermediatecert.pem >>/var/lib/.keystore +$ cat g_dfn_intermediatecert.crt >>/var/lib/.keystore 
-$ cat g_unifrcacert.pem >>/var/lib/.keystore+$ cat g_unifrcacert.crt >>/var/lib/.keystore
 $ cat server1.pem >>/var/lib/.keystore $ cat server1.pem >>/var/lib/.keystore
 $ cat /var/lib/.keystore | openssl enc -e -des3 -out /var/lib/.keystore $ cat /var/lib/.keystore | openssl enc -e -des3 -out /var/lib/.keystore
Zeile 136: Zeile 174:
 $ openssl enc -d -des3 -in /var/lib/.keystore -out tempstore $ openssl enc -d -des3 -in /var/lib/.keystore -out tempstore
 enter des-ede3-cbc decryption password: ***** enter des-ede3-cbc decryption password: *****
-$ cat g_deutsche-telekom-root-ca-2.pem >>/var/lib/.keystore +$ cat g_deutsche-telekom-root-ca-2.crt >>/var/lib/.keystore 
-$ cat g_dfn_intermediatecert.pem >>/var/lib/.keystore +$ cat g_dfn_intermediatecert.crt >>/var/lib/.keystore 
-$ cat g_unifrcacert.pem >>/var/lib/.keystore+$ cat g_unifrcacert.crt >>/var/lib/.keystore
 $ cat server1.pem >>tempstore $ cat server1.pem >>tempstore
 $ openssl enc -e -des3 -in tempstore -out /var/lib/.keystore $ openssl enc -e -des3 -in tempstore -out /var/lib/.keystore
Zeile 145: Zeile 183:
 $ rm tempstore $ rm tempstore
 </code> </code>
 +<note warning>Die Zertifikate können in einem nicht korrektem Encoding vorliege. Dies führt im Apachen zum AH02561-Fehler und einem nicht aufstarten, in diesen Fall sollten Sie die .crts umkodieren <code>openssl x509 -in g_deutsche-telekom-root-ca-2.crt -inform DER -out root.crt
 + </code></note>
 +<note tip>Falls das Zertifikat unter Android nicht funktioniert, kann es an der Reihenfolge des cat-Befehles liegen. Versuchen Sie <code>cat server1.pem g_unifrcacert.crt g_dfn_intermediatecert.crt g_deutsche-telekom-root-ca-2.crt >full.crt</code></note>
  
 Nun teilen Sie **tomcat** in der Datei **server.xml** im **conf**-Verzeichnis mit, wo das Server-Zertifikat zu finden ist. Nun teilen Sie **tomcat** in der Datei **server.xml** im **conf**-Verzeichnis mit, wo das Server-Zertifikat zu finden ist.
Zeile 212: Zeile 253:
 Normalerweise müssen Sie die Anwendungen anschließend neu starten, damit die Konfiguration wirksam wird und das Zertifikat verwendet werden kann. Normalerweise müssen Sie die Anwendungen anschließend neu starten, damit die Konfiguration wirksam wird und das Zertifikat verwendet werden kann.
  
 +\\
  
 +===== Literatur =====
 +
 +  * http://www.dfn-cert.de/informationen/themen/verschluesselung_und_pki/openssl-kurzreferenz.html
 +  * http://wiki.cacert.org/FAQ/subjectAltName
 +  * http://apetec.com/support/GenerateSAN-CSR.htm
 +  * http://wiki.gwdg.de/index.php/Erzeugung_von_Zertifikatantraegen_mit_Subject_Alternative_Name_fuer_virtuelle_Webserver_auf_Basis_von_OpenSSL_fuer_die_DFN-PKI\\ (An die lokalen Gegebenheiten anpassen!)
 +  * http://apetec.com/support/GenerateCSR.htm\\ (Für IIS 7 Microsoft Windows Server 2008)
  
 \\  \\ 
Zeile 219: Zeile 268:
  
 {{tag>zertifikate sicherheit openssl}} {{tag>zertifikate sicherheit openssl}}
 +
QR-Code
QR-Code Einen CSR-Requests für ein Serverzertifikat mit openSSL erstellen (erstellt für aktuelle Seite)