Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:eigenes_ssl-zertifikat_erstellen [23.06.2009 15:33]
nefarius
linux:eigenes_ssl-zertifikat_erstellen [05.05.2010 09:16] (aktuell)
nefarius
Zeile 22: Zeile 22:
 apt-get install openssl apt-get install openssl
 </​code>​ </​code>​
- 
 ===== Erstellung des Zertifikates ===== ===== Erstellung des Zertifikates =====
-Alle verwendeten Optionen ließt man sich am besten in der [[http://​www.openssl.org/​docs/​apps/​openssl.html|man-Page von openssl]] durch! Die Dateiendungen verwende ich zur Unterscheidung der Dateitypen, da bei Verwechslung von Key, Zertifikat ​und signiertem Zertifikat nichts funktionieren wird :-P+Alle verwendeten Optionen ließt man sich am besten in der [[http://​www.openssl.org/​docs/​apps/​openssl.html|man-Page von openssl]] durch! Die Dateiendungen verwende ich zur Unterscheidung der Dateitypen, da bei Verwechslung von Key, CSR und signiertem Zertifikat nichts funktionieren wird :-P
  
 ==== Erzeugung des Schlüssels ==== ==== Erzeugung des Schlüssels ====
-Zu allererst benötigt man einen privaten Schlüssel, der mit dem Zertifikat fest verschweißt wird:+Zu allererst benötigt man einen privaten Schlüssel, der nur auf dem Server gespeichert bleibt und so gut wie möglich vor Diebstahl geschützt werden muss! 
 + 
 +=== Schlüssel mit Passphrase === 
 +Wer seinen Schlüssel zusätzlich mit einem Passwort versieht, muss darauf achten, dass nicht alle Server-Dienste dies auch unterstützen. ''​lighttpd''​ z.B. verlangt beim Start die Eingabe des Passwortes.
 <code bash> <code bash>
 openssl genrsa -des3 -out example.key 4096 openssl genrsa -des3 -out example.key 4096
 </​code>​ </​code>​
- +=== Schlüssel ohne Passphrase === 
-Manche ​Server-Dienste benötigen allerdings die unverschlüsselte Variante des Private Keys ohne Passwort. Solch eine Schlüsseldatei erstellt man folgendermaßen ​(**so gut wie möglich schützen!**)+Meist wird man jedoch einen ungeschützten Schlüssel verwenden, da dieser z.B. bei einem Server-Neustart ​ohne Passwort-Abfrage gelesen werden kann (**Dateirechte entsprechend anpassen! Nur root und der Dienst sollen diese Datei lesen können!**).
 <code bash> <code bash>
-openssl ​rsa -in example.key ​-out example.pem+openssl ​genrsa ​-out example.key ​4096
 </​code>​ </​code>​
  
-==== Erzeugung ​des Zertifikates ​==== +=== Passphrase entfernen === 
-Das (unsignierte!) Zertifikat ​erstellt ​man mit folgender Zeile:+Will man von einem vorhandenen geschützten Schlüssel die Passphrase entfernen, hilft folgender Befehl: 
 +<code bash> 
 +openssl rsa -in example.key -out example-unsafe.key 
 +</​code>​ 
 +==== Erzeugung ​einer Certificate Signing Request (CSR) ==== 
 +Den Certificate Signing Request ​(CSRbenötigt man, um ein vollwertiges ​Zertifikat ​von einer Zertifizierungsstelle zu erhalten, ​man erstellt es mit folgender Zeile:
 <code bash> <code bash>
 openssl req -new -key example.key -out example.csr openssl req -new -key example.key -out example.csr
Zeile 46: Zeile 52:
 ==== Signierung des Zertifikates ==== ==== Signierung des Zertifikates ====
 Hier gibt es wiederum 2 Wege:  Hier gibt es wiederum 2 Wege: 
- 
 === 1. Die Selbstsignierung === === 1. Die Selbstsignierung ===
 D.h. man "​unterschreibt"​ das Zertifikat selber, dies hat aber zur Folge, dass bei Browsern, Mail-Clients etc. (je nach Einsatzgebiet) eine Warnmeldung erscheinen wird, die besagt, dass dem Zertifikat nicht vertraut werden kann: D.h. man "​unterschreibt"​ das Zertifikat selber, dies hat aber zur Folge, dass bei Browsern, Mail-Clients etc. (je nach Einsatzgebiet) eine Warnmeldung erscheinen wird, die besagt, dass dem Zertifikat nicht vertraut werden kann:
Zeile 65: Zeile 70:
  
 === 2. Freie Zertifizierungsstelle === === 2. Freie Zertifizierungsstelle ===
-Siehe dazu die sehr guten, vorhandenen Erklärungen:​+Neben der Selbstsignierung gäbe es natürlich noch den Weg, eine der bekannten Zertifizierungsstellen wie GoDaddy oder VeriSign zu kontaktieren,​ allerdings wird das kostentechnisch ein kleiner Schock werden ;-) Es gibt allerdings auch Firmen, die gegen kleine Einschränkungen Zertifikate gratis signieren. Ein bekanntes Beispiel ist 
 +  * [[http://​www.startssl.com/​|StartSSL.com]] 
 +deren großer Vorteil ist, dass alle bekannten Browser deren Zertifikate anstandslos akzeptieren! Dann wäre da noch 
 +  * [[http://​www.cacert.org/​|CACert.org]] 
 +Vorteil: wesentlich leichter und schneller einzurichten als StartSSL, allerdings Nachteil: Browser (und andere Clients) kennen deren Root-Zertifikat nicht und erzeugen besagte Fehlermeldung. Wer also ein Zertifikat nur in kleinen Kreisen benötigt (Freundeskreis,​ nur du selbst), importiert sich deren Root-Cert und es klappt ebenfalls. ​Siehe dazu die sehr guten, vorhandenen Erklärungen:​
   * [[http://​wiki.schokokeks.org/​SSL-Zertifikat#​CAcert.org|schokokeks.org - CAcert.org]]   * [[http://​wiki.schokokeks.org/​SSL-Zertifikat#​CAcert.org|schokokeks.org - CAcert.org]]
   * [[http://​www.cacert.org/​index.php?​lang=de_DE|CAcert.org]]   * [[http://​www.cacert.org/​index.php?​lang=de_DE|CAcert.org]]
Zeile 75: Zeile 84:
   * http://​www.cacert.org/​index.php?​lang=de_DE   * http://​www.cacert.org/​index.php?​lang=de_DE
   * http://​www.tc.umn.edu/​~brams006/​selfsign.html   * http://​www.tc.umn.edu/​~brams006/​selfsign.html
 +  * http://​www.openssl.org/​docs/​HOWTO/​keys.txt
 +  * http://​www.openssl.org/​docs/​HOWTO/​certificates.txt