Let’s Encrypt: neuer Client, noch einfacher!

lets-encrypt-logoLet’s Encrypt wird mit der Zeit immer professioneller und einfacher zu nutzen. Meine Anleitung aus 2015 ist schon nicht mehr aktuell.

Der damals noch aktuelle letsencryptauto wurde abgelöst durch den certbot, der nun noch mehr automatisiert als damals. Wie der neue Client genutzt wird, erfahren Sie im folgenden Artikel.

Installation und erste Benutzung

Die Installation des certbot ist unter Debian noch weiter vereinfacht worden. Auf der certbot-Website findet man für jeden Webserver/jedes OS eine kurze Anleitung, wie das Tool aus den Paketquellen installiert werden kann.

Hat man den Client also nach oben genannter Anleitung installiert, kann man ihn auch schon nutzen. Ein einfaches

und man wird durch die komplette Konfiguration geführt. Möchte man nicht alle Domains in einem Zertifikat haben, wählt man einfach die ungewünschten Domains ab und erstellt die Zertifikate für die abgewählten Domains in einem zweiten Aufruf des certbot.

Während der Konfiguration fragt der Client auch ab, ob man alle HTTP-Requests auf HTTPS umleiten möchte und erstellt die entsprechende Konfiguration in /etc/apache2/sites-available/ mit der Endung -le-ssl.conf.

Sollten bereits SSL-Webseiten konfiguriert sein, die ersetzt werden sollen, sollten die kompletten SSL-Virtualhost-Direktiven entfernt werden.

Für jede Domain, die man im Apache anlegt, kann man einfach den Client neu ausführen und die entsprechende Domain auswählen, um sie per SSL erreichbar zu machen.

Zertifikate erneuern

Auch das Erneuern der nur 90 Tage gültigen Zertifikate ist nun noch wesentlich einfacher als mit dem alten Client.

liest alle Konfigurationen ein und startet einen Trockenlauf, um die Funktion des Renew zu testen, ohne dabei Änderungen an den bestehenden Zertifikaten durchzuführen. Bei einem erfolgreichen Renew erscheint die Meldung

und man kann den Renew automatisieren. Hierzu habe ich folgende Zeile in meine Crontab eingetragen:

Es wird also täglich geprüft, ob Zertifikate erneuert werden müssen und falls ja, wird ein Renew durchgeführt. Ist das Ablaufdatum noch zu weit entfernt, „verweigert“ der certbot seinen Dienst und tut nichts. -q gibt dem Client die Anweisung, nur eine Rückmeldung auszugeben, sofern Fehler beim Renew aufgetreten sind.

Fazit

Durch den neuen Client ist Let’s Encrypt nun noch sehr viel leichter zu bedienen und es gibt auch für unbedarfte „Administratoren“ keine Entschuldigung mehr, Webseiten ohne SSL zu betreiben.

Durch den neuen Renew-Prozess, der auch prüft, ob ein Renew überhaupt notwendig ist, ist nach dem Erstellen von Zertifikaten nur im Fehlerfall eine Handlung des Administrators notwendig. Prüft man nun noch mit Hilfe eines Monitoring-Systems auf ablaufende SSL-Zertifikate kann auch hier nicht viel schiefgehen und man könnte sogar die Mails ignorieren… was ich natürlich aber nicht empfehle!

12 Gedanken zu “Let’s Encrypt: neuer Client, noch einfacher!

  1. … und jetzt lernt unser Selbstständiger im Bereich der Serveradministration doch bitte noch, dass man sowas nicht exakt auf volle Stunden und schon gar nicht exakt auf Mitternacht legt. Selbst, wenn man nur Erfahrung mit irrelevanten Infrastrukturen hat.

  2. Muss nicht vorher auch apache gestoppt werden? Also eher eine solche Zeile?

    certbot -q renew –pre-hook „service apache2 stop“ –post-hook „service apache2 start“

      • Danke für die Antwort, das muss ich dann wohl noch einmal ausprobieren. Bei meinen früheren Versuchen durfte Apache nicht laufen, während certbot die Zertifikate erneuern wollte: Da kam immer die Fehlermeldung, dass der für die Aktualisierung benötigte Port von Apache belegt sei.

          • Ah, danke für den Hinweis! Der hat sehr weitergeholfen… Nach einiger Suche habe ich nun auch den Grund gefunden, warum das apache-plugin bei mir nie funktioniert hat: weil ich eben auch das Zertifikat für meinen Mailserver von Let’s encrypt beziehe, für den natürlich kein apache-vhost-Eintrag existiert. Vielleicht klappt es bei mir nun mit dem Umstieg vom standalone- zum apache-plugin…

  3. Hi Dominic.
    dank dir sehr für dein Tutorial. Ich nutze Ubuntu 16.04.02 und Apache. Insofern läuft deine Anleitung 1:1 durch.

    You saved my day :)

    Beste Grüße,
    Max

  4. Hi Dominic,
    eine Frage noch: auf dem Server, bei dem ich helfe, liegen in der „sites-available“ conf-Dateien für unterschiedliche Domains. Beim Starten von „certbot –apache“ fragt das tool, für welche Domain ich das Zertifikat erneuern will. Manuell ist es kein Thema auszuwählen. Kann ich das irgendwie im cronjob verpacken? Kann ich deinen cronjob auch per „@monthly“ aufrufen?

    Viele Grüße,
    Max

    • Bei einem Aufruf von „certbot renew“ fragt er nicht, welche Domains er verlängern soll, sondern nimmt die, die unter /etc/letsencrypt/renewal/ bekannt sind – hier musst du also nichts angeben.

      Monatlich würde ich den Cronjob nicht ausführen, da sich hier das Ablaufdatum und der Cron-Lauf überschneiden könnten und du so ungültige bzw. abgelaufene Zertifikate hättest. Lass den Job einfach täglich laufen („certbot renew“), denn wenn keine Zertifikate zur Verlängerung anstehen, tut der certbot auch einfach nichts.

Schreibe einen Kommentar