Froxlor mit Letsencrypt verbinden

7

Froxlor hat vor ein paar Wochen ein Update veröffentlicht, mit dem Letsencrypt automatisiert eingebunden werden kann. Leider gibt es fast keine vollständige Anleitung im Netz, daher hier die wichtigsten Punkte kurz erklärt. Dieses Tutorial basiert auf Debian 8, Apache 2.2 und Froxlor. Wichtig: Die Integration von Letsencrypt in Froxlor ist noch im Beta Stadium, also kann es auch mal zu kleineren Fehlern kommen!

Froxlor fasst im Release Announcement alle nötigen Schritte zusammen, die ich nun einzeln kurz erläutere:

activate Let‘s Encrypt in the settings
– as admin, goto Configuration -> select your distro -> select Webserver -> select your software
– copy’
n‘paste the acme.conf part of the configration template
– restart/reload webserver

Schritt 1

Letsencrypt wird direkt als Admin in Froxlor unter Einstellungen => SSL Einstellungen aktiviert. In der Übersicht der Einstellungen natürlich auch noch SSL aktiv schalten.

letsencrypt-froxlor-settings

Schritt 2 und 3

Unter Konfiguration nun die Distribution auswählen (hier Debian 8), den Service (hier Webserver) und die konkrete Anwendung, die auf dem Server installiert ist (hier Apache2). Eine neue Konfigurationsdatei acme.conf ist verfügbar und muss unter dem angegebenen Pfad angelegt werden: /etc/apache2/conf-enabled/acme.conf

Da es sich bei der von Froxlor vorgeschlagenen ACME Konfiguration um Einstellungen für Apache 2.4 handelt, hier die für ältere Apache Versionen:


Alias "/.well-known/acme-challenge" "/var/www/froxlor/.well-known/acme-challenge"
<Directory "/var/www/froxlor/.well-known/acme-challenge">
 Order allow,deny
 Allow from all
</Directory>

Für Apache 2.4 folgenden Code verwenden:


Alias "/.well-known/acme-challenge" "/var/www/froxlor/.well-known/acme-challenge"
<Directory "/var/www/froxlor/.well-known/acme-challenge">
Require all granted
</Directory>

Als letzten Konfigurationsschritt den Apache Server neustarten.

Letsencrypt verwenden

Anschließend in den Einstellungen einer Domain den Port 443 für die jeweilige IP Adresse auf der die Domain auch unter Port 80 läuft aktivieren. Den Haken bei Letsencrypt setzen und ganz wichtig: kein Alias auswählen, da Letsencrypt kein Wildcard kann. Ich würde WWW empfehlen, damit in das Zertifikat auch die Subdomain www. eingetragen wird.

letsencrypt-froxlor-domain

Froxlor müsste nun voll automatisch nach ca. 5-15 Minuten ein Zertifikat erstellt haben und die Domain müsste unter https funktionieren.

Debugging

Wenn nicht, empfehle ich den Cron von Froxlor direkt auf der Konsole auszuprobieren und mögliche Fehlermeldungen bei Google zu klären:


php /var/www/froxlor/scripts/froxlor_master_cronjob.php --force --debug
php -q /var/www/froxlor/scripts/froxlor_master_cronjob.php --letsencrypt --debug

empty certificate file! Cannot create ssl-directives

Die häufigsten Fehler beziehen sich entweder auf den DNS-Cache, d.h. wenn die Domain noch nicht auf die richtige Maschine / IP Adresse zeigt und Letsencrypt das Zertifikat nicht auf der Maschine ausstellen darf. Dazu einfach via Ping überprüfen, ob die Domain bereits die richtige IP-Adresse hat. Notfalls überprüfen, wo gecached werden könnte oder eine Nacht lang warten.

Der andere zweithäufigste Fehler kann auftreten, wenn die Rückauflösung von der IP-Adresse auf die Domain nicht richtig ist. Bei manchen Domainanbietern scheint das etwas zu hapern.

Bei beiden Fehlern ganz genau die Fehlermeldung lesen, die beim Letsencrypt debug Cronjob angezeigt werden! Bei anderen Fehlern als erstes überprüfen, ob php-curl installiert ist.


Du möchtest regelmäßig Neuigkeiten von meinem Blog? Trag dich für meinen Newsletter ein:

7 Comments
  1. d00p says

    Noch hilfreicher bei der Fehlersuche wird der cronjob mit –debug Parameter 😉

    1. Benjamin Hartwich says

      Stimmt, danke 🙂 hab ich vergessen und wird ergänzt.

  2. Ali says

    Hallo,

    Ich hätte da eine Bitte. Könnten Sie eventuell auch ein Tutorial erstellen, wo sie mithilfe von Froxlor den Mailserver aufbauen. Am besten mit SSL Verschlüsselung.

    Also, Postfix/Dovecot mit SSL Verschlüsselung, halt zum sicheren versenden / empfangen von E-Mail´s (Let’s Encrypt als Zertifikat) wäre super.

    Am ende soll man mit einem Mail-Client eine sichere E-Mail versenden / empfangen können.

    Ich habe es leider nie so richtig hinbekommen. 🙂

    Ich hoffe Sie kennen sich da gut mit aus 🙂

  3. Flo says

    Danke für diese Anleitung!
    Kannst du diese noch auf die aktuelle Version bei den Screenshots heben?
    Mir ist noch ein open_basedir als mögliche Fehlerquelle untergekommen.
    Außerdem hatte ich das seltene Problem, dass der Ordner conf-enabled nicht in die apache.conf integriert war. Es war nur conf.d integriert. Somit musste ich das erst ändern, damit die Einstellungen greifen.
    Du könntest auch noch einen Screenshot von den Einstellungen unter “IP und Ports” hinzufügen mit dem Hinweis welche Einstellungen dort genau zu tätigen ist.
    Was mir auch noch passiert ist, die Frage ob apache.pem benötigt wird. Es hat sich herausgestellt, dass es nicht notwendig ist.

    1. Benjamin Hartwich says

      Danke für die Einschätzung. Da ich Froxlor im Alltag derzeit nicht nutze, kann ich keine Screenshots aktualisieren. Aus den von dir erwähnten Gründen bin ich dann ganz froh, alles über Kommandozeile machen zu können. 🙂

  4. Peter says

    Hallo
    Habe jetzt Stunden hinter mir und gesucht und gemacht aber ich bekomme das nicht hin mit dem LetsEncrypt und Froxlor.
    Ich kann jetzt zwar auf meine Seite mit https zugreifen aber es kommt immer Zertifikat ungültig.In meinem Log steht
    Could not get Let’s Encrypt certificate for meinedomain.de: Curl error: SSL certificate problem: self signed certificate.
    Was mache ich falsch bzw. habe ich falsch gemacht.

    1. Benjamin Hartwich says

      Die Fehlermeldung besagt lediglich, dass du ein selbst signiertes Zertifikat hast. Was genau bei dir schief läuft, wissen die Götter. Passend dazu auch mein Blogartikel, warum Froxlor in manchen Fällen mehr Arbeit macht als es nutzt.

Leave A Reply

Your email address will not be published.