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 [31.10.2009 13:53]
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 nur auf dem Server gespeichert bleibt und so gut wie möglich vor Diebstahl geschützt werden muss! 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!
Zeile 31: Zeile 31:
 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. 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.pem 4096+openssl genrsa -des3 -out example.key 4096
 </​code>​ </​code>​
 === Schlüssel ohne Passphrase === === Schlüssel ohne Passphrase ===
 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!**). 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 genrsa -out example.pem 4096+openssl genrsa -out example.key 4096
 </​code>​ </​code>​
  
Zeile 42: Zeile 42:
 Will man von einem vorhandenen geschützten Schlüssel die Passphrase entfernen, hilft folgender Befehl: Will man von einem vorhandenen geschützten Schlüssel die Passphrase entfernen, hilft folgender Befehl:
 <code bash> <code bash>
-openssl rsa -in example.pem -out example-unsafe.pem+openssl rsa -in example.key -out example-unsafe.key
 </​code>​ </​code>​
- +==== Erzeugung ​einer Certificate Signing Request (CSR) ==== 
-==== Erzeugung ​des Zertifikates ​==== +Den Certificate Signing Request ​(CSRbenötigt man, um ein vollwertiges ​Zertifikat ​von einer Zertifizierungsstelle zu erhalten, ​man erstellt es mit folgender Zeile:
-Das (unsignierte!) Zertifikat ​erstellt ​man 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 53: 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 72: 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 82: 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