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 [2010/02/10 10:14] bushopensslcert [2016/04/22 13:37] – [Schlüsselpaar generieren] schyle
Zeile 1: Zeile 1:
-====== Ein Server-Zertifikat mit openSSL bearbeiten ======+====== Serverzertifikat mit openSSL bearbeiten ======
  
 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|Ein Serverzertifikat beantragen]]**.+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. 
 + 
 +Für Windows-Systeme können Sie das Programmpaket hier herunterladen:  
 +**[[http://www.slproweb.com/products/Win32OpenSSL.html]]** 
 + 
  
  
Zeile 11: 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)
Zeile 18: Zeile 29:
 \\  \\ 
 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=Universitaet Freiburg,L=Freiburg,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>
Zeile 55: Zeile 66:
 prompt                 = no prompt                 = no
  
 +[ req_distinguished_name ]
 +C                      = DE
 +ST                     = Baden-Wuerttemberg
 +L                      = Freiburg
 +O                      = 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
 +ST                     = Baden-Wuerttemberg
 +L                      = Freiburg
 O                      = Universitaet Freiburg O                      = 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 90: Zeile 137:
 Das Antragsverfahren mit Hilfe des Web-Interface der Uni-FR CA ist beschrieben in dem Dokument Das Antragsverfahren mit Hilfe des Web-Interface der Uni-FR CA ist beschrieben in dem Dokument
  
-  * **[[Serverzertifikat beantragen]]**+  * **[[serverzertifikat|Serverzertifikat beantragen]]**
  
 \\ \\
Zeile 173: Zeile 220:
 #   both in parallel (to also allow the use of DSA ciphers, etc.) #   both in parallel (to also allow the use of DSA ciphers, etc.)
 SSLCertificateKeyFile "/var/lib/.keystore" 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: #   Server Certificate Chain:
 #   Point SSLCertificateChainFile at a file containing the #   Point SSLCertificateChainFile at a file containing the
Zeile 181: Zeile 241:
 #   when the CA certificates are directly appended to the server #   when the CA certificates are directly appended to the server
 #   certificate for convinience. #   certificate for convinience.
-SSLCertificateChainFile "/var/lib/.keystore"+SSLCertificateChainFile "/var/lib/chain.pem"
 ...  ... 
 </code> </code>
- 
-Wenn Sie die Zertifikatskette (SSLCertificateChainFile) nicht ausgeben, sind die Clients gezwungen, die Zwischenzertifikate manuell zu importieren. 
-Andernfalls genügt es, wenn der Client-Speicher für vertrauenswürdige Zertifizierungsstellen das Wurzel-Zertifikat in der richtigen Vertrauensstellung enthält. 
- 
  
  
 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 199: Zeile 263:
  
 {{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)