ISPConfig: Zertifikate von Let’s Encrypt automatisch erstellen

Let’s Encrypt ist eine neue CA (Zertifizierungsstelle), die seit kurzem im Produktivbetrieb kostenlose TLS-Zertifikate vergibt.

Das ganze läuft automatisiert, die CA stellt dafür ein Script zur Verfügung, welches sämtliche Kommunikation mit den Servern von Let’s Encrypt regelt. Das Anfordern und erneuern von Zertifikaten ist also sehr einfach und mit einem Befehl über die Kommandozeile zu erledigen.

Für Hosting-Anbieter (oder Selbsthoster) ist Let’s Encrypt natürlich eine tolle Möglichkeit, die Webseiten schnell und kostenlos mit einem validen Zertifikat zu versehen. Für Anbieter mit dem Control Panel ISPConfig gibt es inzwischen eine externe Lösung, um die Zertifikatanforderung nahtlos in die Weboberfläche zu integrieren. Die externe Erweiterung soll eventuell in den nächsten Versionen von ISPConfig fester Teil der Software werden, bisher ist das aber noch nicht der Fall, das Panel muss also gepatcht werden.

Die Erweiterung von alexalouit ist auf github zu finden und kann unter Debian leicht installiert werden. Vorher muss allerdings das Script von Let’s Encrypt installiert werden, ebenfalls von github:

cd /tmp
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto

Der Installer kann abgebrochen werden, bevor er beim Anfordern von Zertifikaten hilft, das wollen wir schließlich über ISPConfig erledigen.

Nun wird „ISPConfig-letsencrypt“ geklont:

cd /tmp
git clone https://github.com/alexalouit/ISPConfig-letsencrypt.git
cd ISPConfig-letsencrypt

Auch hier gibt es einen automatischen Installer, der die Erweiterung installiert und ISPConfig patcht (Dateien verschieben, Datenbank aktualisieren und Konfiguration anpassen):

root@helium:/tmp/ISPConfig-letsencrypt# php -q install.php
Create backup on /var/backup/ directory
/bin/tar: Entferne führende „/“ von Elementnamen
Backup finished
Copy Let's Encrypt configuration.
Start MySQL update..
Configure Apache and reload it.
Create backup cronjob on /var/backup/ directory
Add a cronjob for renewal certs
And finally, update ISPConfig.
Done my job. Enjoy!

Ist dies erledigt, erscheint in ISPConfig in den Einstellungen einer Website neben dem bisher vorhandenen Kontrollkästchen „SSL“ auch das Kontrollkästchen „Let’s Encrypt“:

ISPConfig: Website-Einstellungen mit Kontrollkästchen für Let's Encrypt
ISPConfig: Website-Einstellungen mit Kontrollkästchen für Let’s Encrypt

Setzt man diesen Haken (der Haken bei SSL setzt sich dann automatisch), wird bei der Aktion „Zertifikat Erstellen“ im Tab „SSL“ nicht mehr ein selbstsigniertes Zertifikat auf dem Server generiert, sondern es wird eines bei Let’s Encrypt angefordert. wird automatisch ein Zertifikat von Let’s Encrypt angefordert und die Seite damit ausgestattet. Im SSL-Tab muss und darf nichts weiter getan werden.

Mehr ist gar nicht notwendig, nach kurzer Zeit ist das Zertifikat im Ordner von Let’s Encrypt hinterlegt und wird in den SSL-Ordner der Seite gelinkt. Auch die Änderungen in den vhosts werden automatisch vorgenommen. Die Seite ist nun über https abrufbar und das Zertifikat wird von den meisten vernünftigen Browsern als vertrauenswürdig angezeigt:

Website mit dem über ISPConfig abgerufenen Let's Encrypt Zertifikat
Website mit dem über ISPConfig abgerufenen Let’s Encrypt Zertifikat