TLS / SSL: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 92: Zeile 92:
</nowiki></pre>
</nowiki></pre>


Außerdem muss die Datei '''sub.class1.server.ca.pem''' per SFTP nach ~/etc/ hochgeladen werden.


''' Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. '''
''' Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats https.pem, sowie des Zwischenzertifikats sub.class1.server.ca.pem gebeten werden. '''


Hier kann man das Zertifikat testen:
Hier kann man das Zertifikat nach der Aktivierung testen:


<pre>
<pre>

Version vom 29. Dezember 2013, 20:19 Uhr

Hostsharing besitzt ein SSL-Zertifikat, das von den Mitgliedern für https:// Zugriffe genutzt werden kann (Voreinstellung). Wenn es außerhalb der Paketdomain verwendet wird muss dieses Zertifikat im Browser jedoch explizit akzeptiert werden, da es für die Domain *.hostsharing.net ausgestellt ist. Der Browser meldet dann, dass das Zertifikat nicht zur aufgerufenen Domain passt.


Standardkonfiguration

Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt.

Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.

Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen.

Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.

Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.

Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende .htaccess Dateien für die betroffenen Verzeichnisse konfiguriert werden.

Eigene SSL Zertifikate

Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird.

Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. Deshalb ist auch nur ein Zertifikat pro Paket möglich.

Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.

Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:

#! /bin/sh
  
#Nur Zugriffe für den Owner erlauben
umask u=rwx,g=,o=
  
#Zertifikat erzeugen
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*
openssl rsa <~/etc/cakey.pem >~/etc/https.new
cat ~/etc/careq.pem >>~/etc/https.new
  
#Temporäre Dateien löschen
rm ~/etc/cakey.pem
rm ~/etc/careq.pem
  
#Altes Zertifikat sichern
cp ~/etc/https.pem ~/etc/https.old

Es können weitere Parameter angeben werden, z.B. -days 370.

Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.

Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.

Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden.

Kostenlose SSL-Zertifikate von StartSSL

Heise hat unter der URL http://www.heise.de/security/artikel/Die-Praxis-881280.html den Vorgang dokumentiert, wie man ein Zertifikat erhält, das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.

Mit den Zeilen

$> openssl genrsa -out example.com.key 2048
$> openssl req -new -key example.com.key -out example.com.csr
...

erstellt man sich ein Certificate Signing Request (CSR).

Wenn man dann auf https://www.startssl.com/ die "Express Lane" benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -> "Skip" beim erzeugen -> CSR in Formular kopieren) bekommt man am Ende zwei Dateien:

sub.class1.server.ca.pem 
ca.pem

sowie das Zertifikat zum Kopieren/Einfügen in eine Datei ssl.crt.

Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden; gleichzeitig sollte der Erfolg der Aktion mit openssl überprüft werden:

$> cat example.com.key ssl.crt > ~/etc/https.pem
$> openssl s_server -cert https.pem -www
Using default temp DH parameters
Using default temp ECDH parameters
ACCEPT
^C
$> 

Außerdem muss die Datei sub.class1.server.ca.pem per SFTP nach ~/etc/ hochgeladen werden.

Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats https.pem, sowie des Zwischenzertifikats sub.class1.server.ca.pem gebeten werden.

Hier kann man das Zertifikat nach der Aktivierung testen:

http://www.digicert.com/help/