Apache Webserver – SSL mit Let’s-Encrypt-Zertifikaten ( Debian 9 )

Das Projekt Let’s Encrypt bietet kostenlose Zertifikate an, die von den meisten gängigen Webbrowsern akzeptiert werden, ohne manuell eine Ausnahme für die Verwendung des Zertifikats (wie bei selbst erstellen Zertifikaten ) bestätigen zu müssen. Let’s Encrypt stellt lediglich die Zertifikats-Infrastruktur zur Verfügung. Um die Entwicklung des offiziellen Let’s-Encrypt-Client kümmert sich die Electronic Frontier Foundation (EFF) um die Entwicklung und Wartung der Software. Der offizielle Let’s-Encrypt-Client hat seither den Namen certbot. Installationsanleitungen für diverse Distributionen finden Sie auf der Seite https://certbot.eff.org.

Die Installation und Konfiguration der SSL Zertifikate und des Apache Webservers ist mit dem Lets Encrypt Cerbot schnell und einfach zu bewerkstelligen. Für das Let’s-Encrypt-Projekt gelten drei Grundannahmen, die sich von den etablierten Zertifizierungsstellen wie Thawte oder Verisign unterscheiden:

  1. Überprüft wird nur die Domain, nicht aber, wer Sie sind bzw. ob es Ihre Firma gibt. Die Zertifikate haben damit die gleiche Qualität wie die jeweils kostengünstigsten Zertifikate kommerzieller Anbieter. Für private/kleine Webauftritte ist das absolut ausreichend. Let’s Encrypt richtet sich aber nicht an Online-Shops, große Firmen, Banken etc., bei deren Zertifikaten (gegen gutes Geld) auch der Inhaber der Domain überprüft wird.
  2. Die Installation der Zertifikate erfolgt weitgehend automatisiert durch das Kommando certbot. Damit entfällt das umständliche Handling mit Schlüsseln und Zertifikatsdateien, die per E-Mail versendet bzw. manuell heruntergeladen werden müssen. In diesem Punkt bietet Let’s Encrypt mehr Komfort als kommerzielle Anbieter.
  3. Die Zertifikate sind generell nur 90 Tage gültig. Das ist nicht weiter schlimm — ich werde Ihnen gleich zeigen, wie Sie den Zertifikatserneuerungsprozess automatisieren können.
  • Um Missbrauch zu vermeiden, gibt es strikte Limits, wie viele Zertifikate für eine Domain in einer bestimmten Zeit erzeugt werden dürfen.
    Daher sollte das Kommando certbot für erste Tests mit der Option –staging (ehemals –test-cert) verwendet werden. Die –staging Option erstellt Zertifikate von einem Test-System. Nachdem die Konfiguration überprüft und sichergestellt ist, dass alles funktioniert, kann cerbot ohne die –staging Option zur Erstellung der richtigen Zertifikate aufgerufen werden.

 

SSL Module des Apache Webserver aktivieren

Als Basis wird eine Debian 9 Installation mit einem Apache Webserver verwendet. Die Aktivierung der SSL Standardkonfiguration erfolgt folgendermaßen :

 

Certbot installieren

Certbot ist in den offiziellen Repositories enthalten und kann daher wie gewohnt einfach mit folgenden Befehl installiert werden :

Die Installation aus dem Cerbot Repository gestaltet sich wie folgt :

 

Let’s-Encrypt-Zertifikate für Apache installieren

Um Let’s-Encrypt-Zertifikate anzufordern und für den Webserver Apache zu installieren, führen Sie das folgende Kommando aus. Dabei ersetzen Sie meine-domain.de durch Ihren Domainnamen. Die Zertifikate für smtp.* und imap.* sollen später zur sicheren Konfiguration des Mail-Servers verwendet werden. Wenn Sie nicht vor haben, einen Mail-Server einzurichten, lassen Sie diese beiden Hostnamen weg. Nicht verzichten sollten Sie hingegen auf die www-Variante, selbst wenn Sie http://domainname gegenüber http://www.domainname vorziehen. Das www-Subdomain-Zertifikat ist erforderlich, damit HTTPS-Rewrite-Regeln von www.domainname auf domainname funktionieren.

Erst wenn Sie sicher sind, dass alles klappt, entfernen Sie zuletzt die Option –staging und wiederholen das Kommando nochmals zur Installation der endgültigen Zertifikate.

Das Kommando certbot fordert Sie auf, einen E-Mail-Namen anzugeben. Über diese E-Mail werden Sie verständigt, wenn Ihre Zertifikate ablaufen. Wenn certbot in der Apache-Konfiguration keine Datei mit ServerName-Einstellungen findet, die mit den von Ihnen angegebenen Hostnamen übereinstimmen, müssen Sie in einem weiteren Dialog auswählen, in welche Apache-Konfigurationsdatei die SSL-Konfiguration eingetragen wird. Außerdem können Sie entscheiden, ob Ihre Webseite auch via HTTP zugänglich sein soll, oder ob HTTPS das einzig erlaubte Protokoll ist. certbot fügt dann auch entsprechende Umleitungsanweisungen in Ihre Apache-Konfiguration ein.

Certbot fordert nun beim Let’s-Encrypt-Projekt die für Sie generierten Zertifikate an, lädt diese herunter, installiert alle erforderlichen Dateien in das Verzeichnis /etc/letsencrypt, aktualisiert die Apache-Konfiguration und startet Apache schließlich neu.

Die Let’s-Encrypt-Zertifikate sind grundsätzlich universell verwendbar. Da es aber üblich ist, den SMTP-Server über den Hostnamen smtp.meine-domain.de und den IMAP-Server über imap.meine-domain.de anzusprechen, müssen Sie auch für diese beiden Hostnamen Zertifikate anfordern.

 

Automatische Erneuerung der Let’s-Encrypt Zertifikate

Da die Let’s-Encrypt Zertifikate nach 90 Tagen ablaufen ist eine Aktualisierung der Zertifikate nötig. Dies kann über einen einfachen cronjob realisiert werden :

* der o.g. Cronjob wird um 17:30 am 4ten jeden 3ten Monat ausgeführt.

Der certbot renew Befehl überprüft selbständig ob eine Zertifikatserneuerung notwendig ist. Daher kann o.g. Cronjob auch täglich oder stündlich ausgeführt werden um Serverausfallzeiten so gering wie möglich zu halten (falls das erstellte Zertifikat vor dem Cronjob zur Erneuerung ablaufen sollte).

 

Fehlerquellen

  •  DNS problem: NXDOMAIN looking up A for www.speefak.spdns.de => Die Domain www.speefak.spdns.de ist nicht erreichbar.
www.karl-deutsch.at | kofler.info | https://legacy.thomas-leister.de | www.mva.ch
 
 
 
 
 
https://legacy.thomas-leister.de/anleitung-fuer-lets-encrypt-kostenlose-tls-zertifikate-fuer-alle/
Kategorie(n): Anleitungen, Server, Sicherheit

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

 

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.