Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
opensslcert [2019/05/15 08:51] – [Schlüsselpaar generieren] minnichopensslcert [2025/02/06 18:03] (aktuell) minnich
Zeile 1: Zeile 1:
-====== Serverzertifikat mit openSSL bearbeiten ======+====== Einen CSR-Requests für ein Serverzertifikat mit openSSL erstellen ======
  
-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://www.pki.dfn.de/fileadmin/PKI/anleitungen/Anleitung_Nutzung_OpenSSL.pdf|Anleitung zur Nutzung von OpenSSL in der DFN-PKI (PDF-Datei)]]** 
- 
-Die Anleitung des DFN CERT: **[[http://www.dfn-cert.de/informationen/themen/verschluesselung_und_pki/openssl-kurzreferenz.html|OpenSSL-Kurzreferenz]]** 
  
 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://www.slproweb.com/products/Win32OpenSSL.html]]** **[[http://www.slproweb.com/products/Win32OpenSSL.html]]**
- 
  
  
Zeile 26: Zeile 16:
   * 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 4096 Bit) eingestellt sein.    * Der Schlüssel soll auf hohe Sicherheit (Länge 4096 Bit) eingestellt sein. 
-    * 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 39 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:
Zeile 75: Zeile 62:
 OU                     = Rechenzentrum OU                     = Rechenzentrum
 CN                     = server1.uni-freiburg.de CN                     = server1.uni-freiburg.de
-emailAddress           = admin@server1.uni-freiburg.de 
 </code> </code>
  
Zeile 96: Zeile 82:
 OU                     = Rechenzentrum OU                     = Rechenzentrum
 CN                     = server1.uni-freiburg.de CN                     = server1.uni-freiburg.de
-emailAddress           = admin@server1.uni-freiburg.de 
  
 [ v3_req ] [ v3_req ]
Zeile 118: Zeile 103:
  
 <code> <code>
-$ openssl req -new -sha256 -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>
  
Zeile 130: Zeile 115:
 </code> </code>
  
-Die Datei server1.csr können Sie im Web-Interface der Uni-FR CA 
  
-**[[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]]** +\\ \\ 
- +{{tag>intern}}
- +
-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://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. +
- +
-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: +
- +
-<code> +
-ohne Passwortschutz: +
-$ cat g_deutsche-telekom-root-ca-2.crt >>/var/lib/.keystore +
-$ cat g_dfn_intermediatecert.crt >>/var/lib/.keystore +
-$ cat g_unifrcacert.crt >>/var/lib/.keystore +
-$ cat server1.pem >>/var/lib/.keystore +
- +
-mit Passwortschutz (bei bisher ungeschütztem .keystore): +
-$ cat g_deutsche-telekom-root-ca-2.crt >>/var/lib/.keystore +
-$ cat g_dfn_intermediatecert.crt >>/var/lib/.keystore +
-$ cat g_unifrcacert.crt >>/var/lib/.keystore +
-$ cat server1.pem >>/var/lib/.keystore +
-$ cat /var/lib/.keystore | openssl enc -e -des3 -out /var/lib/.keystore +
-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 /var/lib/.keystore -out tempstore +
-enter des-ede3-cbc decryption password: ***** +
-$ cat g_deutsche-telekom-root-ca-2.crt >>/var/lib/.keystore +
-$ cat g_dfn_intermediatecert.crt >>/var/lib/.keystore +
-$ cat g_unifrcacert.crt >>/var/lib/.keystore +
-$ cat server1.pem >>tempstore +
-$ openssl enc -e -des3 -in tempstore -out /var/lib/.keystore +
-enter des-ede3-cbc encryption password: ***** +
-Verifying - enter des-ede3-cbc encryption password: ***** +
-$ rm tempstore +
-</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. +
-Falls Sie den Zertifikatsspeicher mit einem Passwort geschützt haben, müssen Sie dieses hier im Klartext (!) eingeben. +
- +
-<code> +
-... +
-    <!-- Define a SSL HTTP/1.1 Connector on port 443 --> +
-    <Connector port="443" maxHttpHeaderSize="8192" +
-               maxThreads="150" minSpareThreads="25" maxSpareThreads="75" +
-               enableLookups="false" disableUploadTimeout="true" +
-               acceptCount="100" scheme="https" secure="true" +
-               keystoreFile="/var/lib/.keystore" +
-               keystorePassword="******" +
-               clientAuth="false" sslProtocol="TLS" /> +
-... +
-</code> +
-Das keystore-Password wurde mit '*' unkenntlich gemacht.\\ +
-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: +
- +
-<code> +
-... +
-#   Server Certificate: +
-#   Point SSLCertificateFile at a PEM encoded certificate.  If +
-#   the certificate is encrypted, then you will be prompted for a +
-#   pass phrase.  Note that a kill -HUP will prompt again.  Keep +
-#   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 +
-#   ciphers, etc.) +
-SSLCertificateFile "/var/lib/cert-from-ca.pem" +
- +
-#   Server Private Key: +
-#   If the key is not combined with the certificate, use this +
-#   directive to point at the key file.  Keep in mind that if +
-#   you've both a RSA and a DSA private key you can configure +
-#   both in parallel (to also allow the use of DSA ciphers, etc.) +
-SSLCertificateKeyFile "/var/lib/.keystore" +
-...  +
-</code> +
- +
-\\ +
- +
-===== Zertifikatskette bereitstellen ===== +
- +
-Wenn der Server die Zertifikatskette (SSLCertificateChainFile) nicht zum Client überträgt, ist man gezwungen, dort die Zwischenzertifikate manuell zu importieren. Es ist also zu empfehlen, seinen "Kunden" diesen Service zu bieten. +
- +
-In der SSL-Konfigurationsdatei von Apache findet man dazu den Parameter "SSLCertificateChainFile"+
- +
-Speichern Sie die Zertifikatskette, die aus drei aneinander gehängten PEM-Dateien besteht an einen Platz Ihrer Wahl und lassen Sie den Parameter darauf zeigen. Erhältlich ist das **[[https://pki.pca.dfn.de/uni-freiburg-ca/pub/cacert/chain.txt|ChainFile]]** auf den DFN-Webseiten der Uni FR CA. +
- +
-<code> +
-#   Server Certificate Chain: +
-#   Point SSLCertificateChainFile at a file containing the +
-#   concatenation of PEM encoded CA certificates which form the +
-#   certificate chain for the server certificate. Alternatively +
-#   the referenced file can be the same as SSLCertificateFile +
-#   when the CA certificates are directly appended to the server +
-#   certificate for convinience. +
-SSLCertificateChainFile "/var/lib/chain.pem" +
-...  +
-</code> +
- +
- +
-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) +
- +
-\\  +
-\\  +
-\\ +
  
-{{tag>zertifikate sicherheit openssl}} 
  
QR-Code
QR-Code Einen CSR-Requests für ein Serverzertifikat mit openSSL erstellen (erstellt für aktuelle Seite)