TLS / SSL: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(Seite übernommen aus alter Dokumentation.)
 
K (Kostenlose Let's Encrypt Zertifikate)
 
(67 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Baustelle}}
== SSL wird zu TLS ==
[[Kategorie:HSDoku]]
[[Kategorie:WWW]]


==Zertifikate für ssl==
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008.


Will man SSL nutzen, braucht man in seinem Paket 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.
== Standardkonfiguration ==


Hostsharing besitzt ein ssl-Zertifikat, das auch von seinen Mitgliedern genutzt werden kann, die eine eigene IP-Nummer in ihrem Paket haben. Tut man das, muss man aber akzeptieren, dass bei Aufruf des https-Protokolls im Browser eine Fehlermeldung erscheint, da die Domains nicht zusammenpassen.
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.  


Wer das vermeiden möchte, kann ein eigenes Zertifikat kaufen und bei Hostsharing nutzen.
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.


Zunächst muss man als Paket-Admin einen private key erzeugen und dann einen CSR. Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.
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 ==
 
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===
 
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden
# es muss je eine example.com.key Datei erzeugt werden
# mit der example.com.key Datei wird die example.com.csr erstellt
# Die example.com.csr wird an die Zertifizierungstelle gesendet
# zurück bekommt man
## eine example.com.crt Datei
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert
# zur Aktivierung info an service@hostsharing.net senden
 
=== per script Zertifikat erstellen ===
 
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.
 
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:
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
<pre><nowiki>
#! /bin/sh
    
    
  #Nur Zugriffe für den Owner erlauben
#Nur Zugriffe für den Owner erlauben
  umask u=rwx,g=,o=
umask u=rwx,g=,o=
    
    
  #Zertifikat erzeugen
#Zertifikat erzeugen
  openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*
  openssl rsa <~/etc/cakey.pem >~/etc/https.new
openssl rsa <~/etc/cakey.pem >~/etc/https.new
  cat ~/etc/careq.pem >>~/etc/https.new
cat ~/etc/careq.pem >>~/etc/https.new
    
    
  #Temporäre Dateien löschen
#Temporäre Dateien löschen
  rm ~/etc/cakey.pem
rm ~/etc/cakey.pem
  rm ~/etc/careq.pem
rm ~/etc/careq.pem
    
    
  #Altes Zertifikat sichern
#Altes Zertifikat sichern
  cp ~/etc/https.pem ~/etc/https.old
cp ~/etc/https.pem ~/etc/https.old
</nowiki></pre>


Es können weitere Parameter angeben werden, z.B. -days 370.
Es können weitere Parameter angeben werden, z.B. -days 370.
Zeile 38: Zeile 64:
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.
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.


==Stammzertifikat von Hostsharing==
''' Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. '''
 
Hostsharing verfügt über ein eigenes Stammzertifikat. Damit ist es möglich, ssl-Verschlüsselung zu nutzen. Die ssl-Verschlüsselung wird zwar von den Browsern nicht als vertrauenswürdig anerkannt, da es nicht von einer Zertifizierungsstelle authentifiziert wurde, aber Hostsharing-Mitglieder vertrauen diesem Zertifikat natürlich trotzdem :-).
 
Das Stammzertifikat kann von Euch aber in die Liste der vertrauenswürdigen Zertifikate Eures Browsers übernommen werden und unter der folgenden URL direkt in den Browser geladen werden:
 
http://pacs.hostsharing.net/hostsharing-root-ca.crt
 
Auf dem Server ist das Zertifikat unter /home/htdocs/hostsharing-root-ca.crt abgelegt.


Es kann unter Windows auch auf die lokale Platte kopiert und dann per Doppelklick installiert werden.
== Kostenlose Let's Encrypt Zertifikate ==


Damit sind dann auch E-Mails mit ssl-Verschlüsselung möglich.
Es gibt kostenlose Zertifikate von Let's Encrypt. Davon handelt der eigene Artikel [[TLS mit Let's Encrypt Zertifikat]].

Aktuelle Version vom 6. Juli 2017, 15:59 Uhr

SSL wird zu TLS

Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008.

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

Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen

  1. es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden
  2. es muss je eine example.com.key Datei erzeugt werden
  3. mit der example.com.key Datei wird die example.com.csr erstellt
  4. Die example.com.csr wird an die Zertifizierungstelle gesendet
  5. zurück bekommt man
    1. eine example.com.crt Datei
    2. ggf eine example.com.chain oder sub.class1.server.ca.pem Datei
  6. die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert
  7. zur Aktivierung info an service@hostsharing.net senden

per script Zertifikat erstellen

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.

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 Let's Encrypt Zertifikate

Es gibt kostenlose Zertifikate von Let's Encrypt. Davon handelt der eigene Artikel TLS mit Let's Encrypt Zertifikat.