TLS mit Let's Encrypt Zertifikat

Aus Hostsharing Wiki
Version vom 12. Mai 2018, 15:08 Uhr von Nbc00 (Diskussion | Beiträge) (Add section on HTTP challenge information and DNS check)
Zur Navigation springen Zur Suche springen

"Let's Encrypt" ("Lasst uns verschlüsseln") ist eine Zertifizierungsstelle für X.509 TLS-Zertifikate. Über eine standardisierte Programmierschnittstelle lassen sich bei Let's Encrypt sogenannte Domain-validierte Zertifikate automatisiert ausstellen und verlängern. Weitere Informationen zu Let's Encrypt finden sich in der Wikipedia (dt.)

Let's Encrypt bei Hostsharing

Nutzer der Hostsharing-Plattform können TLS mit einem TLS-Zertifikat von Let's Encrypt ohne weiteres Zutun nutzen:

Beim Einrichten einer neuen Domain auf der Hostsharing-Plattform wird automatisch ein TLS Zertifikat erzeugt, das für die Hauptdomain und für die www-Subdomain zu dieser Hauptdomain gültig ist, also zum Beispiel für "beispiel.de" und "www.beispiel.de". Dazu muss der Domain-Inhaber nichts weiter tun.

Weitere Subdomains

Viele Hostsharing-Nutzer kennen leichtgewichtige Subdomains, die sich nur durch das Anlegen eines weiteren Verzeichnisses im Domain-Verzeichnis ~/doms/example.com/subs/ nutzen lassen. Dieses Feature ist mit Let's Encrypt-Zertifikaten nicht möglich, denn die Zertifizierungsstelle stellt keine sogenannten Wildcard-Zertifikate aus. Im Zertifikat muss deshalb jede Subdomain explizit angegeben sein und nur aufgeschaltete Subdomains können mit einem solchen Zertifikat abgesichert werden.

Aus diesem Grund ist in unserer Administrations-Anwendung HSAdmin ein Feld "valid subdomain names" eingeführt worden. Hier wird eine Liste aller Subdomains angegeben, die für diese Domain genutzt werden sollen (in diesem Apache VHost). Die Angabe erfolgt als Komma-separierte Liste der Form "www,blog,aktion", wenn neben der Haupdomain "beispiel.de" die Subdomains "www.beispiel.de", "blog.beispiel.de" und "aktion.beispiel.de" gültig sein sollen.

Keine Wildcard Zertifikate mit Let's Encrypt möglich

Im Feld "valid subdomain names" kann auch "*" für beliebige Subdomains eingegeben werden. Damit erreichen erfahrene Hostsharing-Nutzer das alte Verhalten leichtgewichtiger Subdomains durch das Anlegen eines Unterverzeichnisses. Dies ist jedoch nicht in Kombination mit Zertifikaten von Let's Encrypt möglich. Die Domain-Option "letsencrypt" muss dann deaktiviert werden. Für HTTP mit TLS-Verschlüsselung muss dann ein kostenpflichtiges Wildcard-Zertifikat einer anderen Zertifizierungsstelle installiert werden. Dabei unterstützt der Hostsharing Service.

Migration vorhandener Domains

Domains, die zum Zeitpunkt der Umstellung bereits bei Hostsharing eingerichtet sind, werden wie folgt behandelt: Im Feld "valid subdomain names" ist der Stern "*" eingetragen, damit das bekannte Verhalten für leichtgewichtige Subdomains erhalten bleibt. Demzufolge ist die Domain-Option "letsencrypt" deaktiviert.

Wenn für eine solche Domain Let's Encrypt-Zertifikate von Hostsharing automatisch ausgestellt werden sollen, sind mit den Rechten des Paket-Administrators (also zum Beispiel dem User "xyz00") an der Domain zwei Änderungen vorzunehmen:

1. Im Feld "valid subdomain names" müssen alle genutzten Subdomains explizit angegeben werden. Die Liste kann auch leer sein.

2. Die Domain-Option "letsencrypt" wird aktiviert.

In der Regel steht nach wenigen Minuten ein Let's Encrypt-Zertifikat für die Domain zur Verfügung.

Berechtigungsprüfung vor Erstellung von Zertifikaten

Hostsharing nutzt zum Beantragen von Let's-Encrypt-Zertifikaten das [[1]] über HTTP. Um vorab sicherzustellen, dass der Zertifikatsantrag berechtigt ist, prüft Hostsharing unter anderem, ob die Domain die DNS-Server von Hostsharing nutzt. Bevor die Let's-Encrypt-Option in HSAdmin aktiviert wird, sollte man - gerade bei erst kürzlich zu Hostsharing umgezogenen Domains - sicherstellen, dass der lokale DNS-Cache auf den Hostsharing-Servern die aktuellen DNS-Informationen vorhält.

Per SSH in das entsprechende Paket eingeloggt, sollte der Befehl (hier am Beispiel der Domain example.com)

dig @localhost example.com NS

Die Hostsharing-DNS-Server als Ausgabe liefern:

;; ANSWER SECTION:
example.com.               3063    IN      NS      dns1.hostsharing.net.
example.com.               3063    IN      NS      dns2.hostsharing.net.
example.com.               3063    IN      NS      dns3.hostsharing.net.

Monitoring von TLS-Zertifikaten

TLS-Zertifikate von Let's Encrypt gelten jeweils nur für 90 Tage. Nach Ablauf von 60 Tagen sollten die Zertifikate erneuert werden. Dieser Prozess ist automatisiert.

Damit Probleme bei der Erneuerung von Zertifikaten nicht unbemerkt bleiben, haben wir ein Monitoring der Zertifikat-Restlaufzeiten eingerichtet. Im Falle von automatisch erstellten Let's Encrypt-Zertifikaten kümmern sich die Hostmaster um Problemfälle. Sie informieren das Mitglied, wenn der Paket- oder Domain-Administrator das Problem durch eine Konfiguration verursacht hat.

Das Monitoring ist gleichzeitig eine neue Funktion für alle Zertifikate, die Mitglieder uns zur Installation bereitgestellt haben: Der Paket-Administrator wird ca. 3 Wochen vor Ablauf eines Zertifikates informiert. Dazu bitte ggf. ein E-Mail Alias für den Paket-User (Beispiel: "xyz00") einrichten, damit die E-Mail mit der Warnung den richtigen Adressaten erreicht.