Lets Encrypt Zertifikate für IPFire

mit manueller Verifikation

Nachdem Chrome und Mozilla StartSSL das Vertrauen entzogen haben und Opera mit der neusten Version den Zugriff auf meine IPFire mit einem Zertifikatsfehler quitierte, musste ich eine Alternative für die SSL-Zertifikate suchen. Diese war mit Let’s Encrypt schnell gefunden. Aber …

Es gibt zwei Dinge die mir bei Let’s Encrypt Zertifikaten in meinem privaten Netzwerk nicht so gefallen.

Domainnamen Da meine internen Systeme alle als FQDN xyz.summer.co.at haben, könnte ich die Domainnamen eigentlich über die DNS-Einstellungen auf die öffentliche IP meines Modems setzen. Jedoch hab ich keine statische IP und sie ändert sich alle paar Monate. D.h. ich müsste bei Änderung der IP immer die DNS-Einstellungen anpassen.

Ports Ich möchte keine Zugriffe auf meine internen Systeme über Standard-Ports erlauben. Vor allem nicht, auf den Webserver meiner Firewall. Externe Zugriffe in mein Netzwerk sind nur über OpenVPN möglich.

Lösung Nach etwas suchen, habe ich eine - für mich passende - Lösung gefunden: SSL For Free

SSL For Free bietet die Möglichkeit, Let’s Encrypt Zertifikate manuell zu erstellen. Für die Verifikation des Hostnamens stehen drei Möglichkeiten zu Verfügung:

Nachteil Da Let’s Encrypt Zertifikate nur 90 Tage gültig sind, müssen die Zertifikate verlängert und manuell ausgetauscht werden. SSL For Free versendet aber bei Registrierung Benachrichtigungen, wenn es so weit ist.

Konfiguration IPFire Diese Zertifikate können auf der IPFire eingebunden werden, indem die Apache-Konfiguration angepasst wird. Dazu müssen die Files zuerst auf die IPFire kopiert werden. Am besten in ein eigenes Verzeichnis im httpd.

mkdir -p /etc/httpd/letsencrypt
unzip sslforfree.zip -d /etc/httpd/letsencrypt

Nun noch in der /etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf die Zertifikate ersetzen. Dazu

SSLCertificateFile /etc/httpd/server.crt
SSLCertificateKeyFile /etc/httpd/server.key

durch

SSLCertificateFile /etc/httpd/letsencrypt/certificate.crt
SSLCertificateKeyFile /etc/httpd/letsencrypt/private.key

ersetzen. Nun muss nur noch der Apache neu gestartet werden.

/etc/init.d/apache start

Beim Zugriff auf das Webinterface wird nur das Let’s Encrypt Zertifikat angezeigt.