Die Letsencrypt-Initiative war 2016 mit ca. 20 Mio. aktiven Zertifikaten ein durchschlagender Erfolg. Nicht verwunderlich also, dass die Verbreitung und Unterstützung von Let’s Encrypt in Software zur Verwaltung von Webservern integriert wurde.
So bot sich mit Froxlor 0.9.35 im April letzten Jahres die bequeme Möglichkeit, Let’s Encrypt-Zertifikate direkt im Froxlor-Panel zu verwalten. Die parallele SSL-Zertifkat-Erstellung und -Erneuerung mit dem Let’s Encrypt-eigenen Client, der mittlerweile in certbot umgetauft wurde, entfällt somit.
Inhalt
Vollständige Integration ins Froxlor-Panel
Seitdem ging die Entwicklung weiter und Froxlor liegt mittlerweile in der Version 0.9.38.7 vor. Let’s Encrypt SSL wurde in das Adminpanel integriert, wie in Abb. 1 zu erkennen ist.

Ein Klick auf SSL Zertifikate zeigt die im System hinterlegten Zertifikate mittlerweile bequem mit Gültigkeitsdauer an. Hier werden auch SSL-Zertifkate angezeigt, die im Kundenpanel von Froxlor parallel zum Let’s Encrypt-Automatismus integriert wurden (Abb. 2). Wildcard-Zertifikate sind nach wie vor nicht geplant, mit Subject Alternative Name (SAN) lassen sich aber Zertifikate für die jeweilige Domain inklusive der www-Subdomain generieren. Froxlor Server Name Identification erlaubt grundsätzlich die Zertifikatserstellung pro Domain.

Kommt man von einer früheren Froxlor-Version ohne integrierte Let’s Encrypt-Unterstützung, wird während des Updates und vor der nächsten Anmeldung gefragt, ob diese Option grundsätzlich aktiviert werden soll. Bestätigt man dies, finden sich ab sofort die Let’s Encrypt-Einstellungen in den Eigenschaften einer jeden Domain. In den IP- und Porteinstellungen (Abb. 3) muss ein SSL-Socket für die IP auf Port 443 aktiviert sein. Standardmäßig lauscht der Apache 2.4 erst einmal nur auf Port 80.

In den Einstellungen der Domain im Froxlor-Adminpanel (Abb. 4) kann die Let’s Encrypt-Option aktiviert werden, wenn die Wildcard-Option aus den zuvor genannten Gründen auf den www-Alias einstellt ist .

Let’s Encrypt-Konfiguration für Apache 2.4
Damit die automatische Verwaltung der SSL-Zertifikate per ACME funktionieren kann, muss die Konfiguration des Apache-Webservers wie folgt aktualisiert werden.
Folgende Konfigurationsdatei des Apache 2.4 wird dazu mit einem Texteditor geöffnet und um
nano /etc/apache2/conf-enabled/acme.conf
diesen Alias zur ACME-Konfiguration ergänzt.
Alias "/.well-known/acme-challenge" "/var/www/html/froxlor/.well-known/acme-challenge"
<Directory "/var/www/html/froxlor/.well-known/acme-challenge">
Require all granted
</Directory>
Zum Aktivieren der neuen Konfiguration muss der Apache neu gestartet werden.
/etc/init.d/apache2 restart
Nun weiß der Apache-Webserver wie er mit der Zertifikatsverwaltung von Let’s Encrypt umzugehen hat, sodass die entsprechenden SSL-Zertifikate angefordert und abgerufen werden können. Alle 90 Tage müssen die verwendeten Zertifikate neu angefordert und ausgetauscht werden. Dieser Umstand ist explizit von der Let’s Encrypt-Initiative gewünscht.
Automatische Erneuerung der SSL-Zertifikate
Für die automatische Erneuerung der SSL-Zertifikate richtet Froxlor einen Cronjob ein, der wie folgt über den Master-Cronjob auch manuell angestoßen werden kann.
php5 -q /var/www/html/froxlor/scripts/froxlor_master_cronjob.php --letsencrypt

Das Froxlor-Kundenpanel
Die bisherigen Erläuterungen bezogen sich grundsätzlich auf das Admin-Panel von Froxlor. Wenn SSL und Let’s Encrypt jedoch grundsätzlich aktiviert sind, kann die domainspezifische Konfiguration auch vom Kunden selbst vorgenommen werden.
Auch hier gibt es den Menüpunkt, um vorhandene SSL-Zertifikate des jeweiligen Kunden anzeigen zu lassen (Abb. 6).

In den Einstellungen der Domain erfolgt die Konfiguration analog zu der im Admin-Panel. Wurde dort Let’s Encrypt schon aktiviert, ist die Option im Kundenpanel automatisch ebenfalls gesetzt (Abb. 7).

Speicherort der SSL-Zertifikate
Nach ihrer Erstellung sind alle Zertifikate der in Froxlor für Lets Encrypt aktivierten Domains im Verzeichnis /etc/ssl/froxlor-custom zu finden. Prinzipiell ließen sie sich jetzt auch an andere Orte kopieren oder sichern.
Mögliche Probleme
Gerade wenn man von einer früheren Froxlor-Version kommt oder bereits eine „manuelle“ SSL-Konfiguration inkl. Zertifikate vorgenommen hatte, kann es zu Problemen bei der aktuellen Version kommen.
Fehler 1: PHP-cURL fehlt
apt-get install php5-curl
service apache2 restart
Fehler 2: empty certificate file! Cannot create ssl-directives
Diese Meldung ist im Systemlog von Froxlor nach Ausführung des Cronjobs zu finden. Zur Generierung der SSL-Zertifikate bei Let’s Encrypt benötigt der Webserver eigene Zertifikate. Diese sind nicht zwingend vorhanden und können mit OpenSSL wie folgt erzeugt werden:
openssl genrsa -out /etc/ssl/private/apache.key 2048
openssl req -new -x509 -key /etc/ssl/private/apache.key -days 365 -sha256 -out /etc/ssl/certs/apache.crt