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:09] – [Serverzertifikat mit openSSL bearbeiten] bushopensslcert [2019/04/10 12:00] – [Schlüsselpaar generieren] mt1051
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.
  
Zeile 22: Zeile 22:
  
 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 2020 kann auch ein neues Zertifikat mit 2084 Bit Schlüssellänge erstellt werden. Das Zertifikats darf dann allerdings nach BSI-Richtlinien nur bis maximal 31.12.2022 gültig sein. 
 +  * Der Gültigkeitszeitraum wird auf die maximale von der Uni-FR CA akzeptierten Zeitdauer von 2 Jahre (730 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:
-<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 66: Zeile 67:
 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
 +emailAddress           = admin@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           = 2048
 +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 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 117:
  
 <code> <code>
-$ openssl req -new -days 1825 -key /var/lib/.keystore -out server1.csr -config req_config+$ openssl req -new -sha256 -days 1825 -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 131:
 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/dfn-ca-global-g2/cgi-bin/pub/pki?cmd=pkcs10_req;id=1;menu_item=2;XSEC=5e540869bd1c44454fc8a2667907002c50f03e67e4fb4cae29639d6a878f239d&RA_ID=4160|Link]]** 
  
 direkt über die Schaltfläche **Durchsuchen** hochladen lassen. direkt über die Schaltfläche **Durchsuchen** hochladen lassen.
Zeile 109: Zeile 147:
 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 159:
 <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 176:
 $ 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 185:
 $ 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 255:
 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 270:
  
 {{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)