SSL für den Webspace

SSL und HTTPS

Dank der SSL-Verschlüsselung können Du und Deine Besucher Deine Webseiten abgesichert und verschlüsselt über HTTPS aufrufen. Für die SSL-Verschlüsselung wird ein SSL-Zertifikat benötigt, welches wir kostenlos und automatisch per Let's Encrypt ausstellen.

Es ist auch möglich, kostenpflichtige SSL-Zertifikate zu kaufen, dies wird jedoch in diesem Artikel nicht behandelt.

Ausstellen von Zertifikaten

Das System stellt automatisch SSL-Zertifikate für neu registrierte Domains und neu erstellte Subdomains aus. Webseiten werden somit automatisch mit SSL-Zertifikaten ausgestattet, sobald sie erstellt werden. Bei transferierten oder neu registrierten Domains kann dies einige Zeit in Anspruch nehmen, da Let's Encrypt zuerst per DNS die IP-Adressen unserer Server erhalten muss, bevor die Autorisierung unserer Server für das Ausstellen von Zertifikaten erfolgen kann. Das System versucht aber regelmäßig, die Zertifikate auszustellen.

Ein manuelles Ausstellen von Zertifikaten über Let's Encrypt ist weder nötig noch möglich.

On Demand-Ausstellung von Zertifikaten

In dem (sehr) seltenen Fall, dass eine Webseite kein SSL-Zertifikat hat, und trotzdem aufgerufen wird, wird einmalig eine Fehlermeldung mit einem ungültigen Zertifikat angezeigt (ausgestellt auf anyhost.lima-city.de). Das System erstellt sofort einen Auftrag, ein SSL-Zertifikat für die Webseite auszustellen. In der Regel wird das in wenigen Sekunden erledigt, so dass die Seite innerhalb kürzester Zeit per SSL erreichbar ist. Sofern es sich um einen Transfer oder eine Neuregistrierung einer Domain handelt kann es hier dazu kommen, dass der Besucher (per Browser) bereits die neuen IP-Adressen per DNS erhält und Let's Encrypt aufgrund von DNS-Caching noch keine oder alte IP-Adressen erhält. In dem Fall wird das System es bei Let's Encrypt so lange probieren, bis das Zertifikat ausgestellt wurde.

Verlängerung von SSL-Zertifikaten

SSL-Zertifikate von Let's Encrypt haben eine Laufzeit von 90 Tagen. Die Zertifikate werden automatisch und rechtzeitig verlängert, so dass dauerhaft ein gültiges Zertifikat vorhanden ist, sofern einmal ein Zertifikat bestanden hat. Sollte wider erwarten doch kein Zertifikat ausgestellt werden können (z.B. aufgrund eines temporären Fehlers) wird das System es täglich erneut versuchen. Im Notfall greift aber die "On Demand"-Ausstellung von Zertifikaten, so dass die Webseite immer per SSL erreichbar ist.

Ein manuelles Verlängern von Zertifikaten über Let's Encrypt ist weder nötig noch möglich.

CSR für ein eigenes SSL-Zertifikat

Für bei lima-city verwaltete Domains ist normalerweise kein Certificate Signing Request nötig, weil die SSL-Zertifikate automatisch ausgestellt und verlängert werden.

Ein CSR wird nur benötigt, wenn du ein eigenes Zertifikat über eine externe Zertifizierungsstelle beantragst. Auf einem Linux-System kannst du CSR und privaten Schlüssel zum Beispiel mit OpenSSL erzeugen:

Bash
openssl req -nodes -newkey rsa:2048 -sha256 -keyout 'meinedomain_de.key' -out 'meinedomain_de.csr' -subj '/CN=meinedomain.de/C=DE'

Ersetze meinedomain.de durch deine Domain. Die .csr-Datei enthält den Antrag für die Zertifizierungsstelle, die .key-Datei enthält den privaten Schlüssel. Bewahre den privaten Schlüssel sicher auf und gib ihn nicht weiter.

SSL-Zertifikate können nur für Domains ausgestellt werden, deren Inhaberschaft oder Kontrolle nachgewiesen werden kann. Je nach Zertifizierungsstelle erfolgt die Prüfung per DNS, HTTP oder E-Mail.

Bündelung von Zertifikaten

In den meisten von uns verwendeten SSL-Zertifikaten sind viele Webseiten, auch unterschiedlicher Kunden, zusammengefasst. Das ist gewollt und von Let's Encrypt im "Hosting Provider Implementation Guide" empfohlen:

Wir bündeln gemäß dieses Guides viele SANs (Subject Alternative Name), so werden die die Domainnamen im Zertifikat genannt, in ein Zertifikat um die Anzahl der Zertifikate zu reduzieren. Da wir über 400.000 Hostnamen mit Let's Encrypt schützen macht es auch einen deutlichen Unterschied für die Server von Let's Encrypt ob wir alle 90 Tage 400.000 oder 4.000 Zertifikate ausstellen (das ist ein Unterschied von ~ 180 Zertifikaten pro Stunde, die wir weniger ausstellen).

An der Stelle muss zwischen den Subject Alternative Names und dem Common Name für das Zertifikat unterschieden werden. Die Domains für das Zertifikat stehen in den SANs, und nur ein einzelner der SANs wird als Common Name verwendet. In Windows sind alle SANs eines Zertifikats unter "DNS-Namen" im Zertifikats-Details zu sehen.

Ab dem Webhosting-Paket "Business" aufwärts werden SSL-Zertifikate nicht mehr gebündelt und die SSL-Zertifikate enthalten nur eine Domain bzw. einen Hostnamen.

Von HTTP auf HTTPS umleiten

Wenn der gesamte HTTP-Traffic einer Domain auf HTTPS umgeleitet werden soll, nutze bevorzugt die Verwaltung:

  1. Öffne Websites & Domains.
  2. Wähle bei der Webseite das Schlosssymbol.
  3. Aktiviere die SSL-Weiterleitung.

Screenshot: SSL-Weiterleitung unter Websites & Domains aktivieren

Nach einigen Minuten ist die Umleitung aktiv. Gegebenenfalls muss der Browser-Cache geleert werden.

Alternativ ist eine Weiterleitung per .htaccess möglich:

Apache
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Bei R=301 handelt es sich um eine permanente Weiterleitung. Für temporäre Weiterleitungen kann R=302 verwendet werden.

HSTS aktivieren

HSTS weist Browser an, eine Domain künftig nur noch per HTTPS aufzurufen. Aktiviere HSTS nur, wenn SSL für die Domain zuverlässig funktioniert.

Lege dafür im Verzeichnis der Webseite eine .htaccess-Datei an oder ergänze eine vorhandene Datei:

Apache
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

Bei ownCloud oder Nextcloud sollte die Zeile unterhalb der Update-Markierung eingefügt werden:

Apache
#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Frag die lima-city Hilfe Antworten basieren auf unseren Hilfeartikeln. Bitte sende keine Accountdaten oder Passwörter.