Let’s Encrypt nutzen – eine Anleitung

Let's Encrypt

Diese Anleitung ist nicht mehr aktuell. Bitte beachten Sie meine aktualisierte Anleitung!

Ich habe bereits einen kurzen Beitrag über Let’s Encrypt geschrieben, um auf die offene Beta, die seit dem 03. Dezember aktiv ist, hinzuweisen. Dort sind viele Informationen zu finden, die man über Let’s Encrypt wissen sollte – mittlerweile ist sogar Facebook als Sponsor eingestiegen.

Heute möchte ich zeigen, wie man die neuen SSL-Zertifkate auf einem Debian- oder Ubuntu-Server beantragt und konfiguriert.

Auch wenn das Projekt für alle zugänglich ist, kann es hier und da noch zu Problemen kommen – das Projekt befindet sich noch immer in der Beta-Phase!

Für etwaige Schäden übernehme ich keine Haftung. Nicht abtippen, sondern verstehen!

Diese Anleitung habe ich erfolgreich auf Debian 8 (Jessie) in Verbindung mit nginx 1.9.7 getestet.

Let’s Encrypt hat ein offenes Protokoll namens ACME entwickelt, das der Kommunikation mit den CA-Servern dient. Es gibt, neben dem offiziellen Client, auch diverse Eigenentwicklungen, ich möchte heute aber nur auf den offiziellen Client eingehen.

Client installieren

Die Installation des ACME-Clients erfolgt, dank Git, spielend leicht:

Nach der „Installation“ initialisieren wir den Client und installieren die Abhängigkeiten vollautomatisch. Hierfür genügt ein Aufruf von

ohne Parameter.

Zertifikate beantragen

Es gibt verschiedene Möglichkeiten, die Domain-Inhaberschaft zu bestätigen. Wir nutzen heute den standalone-Webserver des Tools, weshalb wir im Vorfeld unseren Webserver kurz abschalten müssen.

Ist das erledigt, beantragen wir unser Zertifikat wie folgt:

Man kann natürlich auch einige Optionen weglassen (z.B. die www-Subdomain) oder weitere Subdomains hinzufügen.

certonly: diese Option nutzen wir, damit die ausgestellten Zertifikate nur gespeichert werden, aber der genutzte Webserver nicht automatisch konfiguriert wird. Dies sollte man besser per Hand erledigen – man kann natürlich aber die entsprechende „apache2“ oder „nginx“-Option nutzen – mehr hierzu in der Client-Dokumentation.

–rsa-key-size: hier legen wir die Länge des RSA Private Key auf 4096 Bit, statt den standardmäßig verwendeten 2048 Bit, fest.

-d: hier folgen die Domains, für die das beantragte Zertifikat gelten soll – in diesem Fall „dominicpratt.de“ und „www.dominicpratt.de“. Man kann hier natürlich auch noch weitere Subdomains, wie „mail.dominicpratt.de“, angeben.

Nach der Beantragung erhalten wir die nötigen Zertifikatsdateien vom ACME-Server, die in /etc/letsencrypt/live/{domain} abgelegt werden. Schauen wir dort nach den Files, finden wir:

  • cert.pem (das eigentliche Zertifikat)
  • chain.pem (Zertifikat inkl. Zwischenzertifikate)
  • fullchain.pem (zusammengefügt aus cert.pem und chain.pem)
  • privkey.pem (Privater Key)

Der private Key muss unbedingt privat bleiben, dieser darf niemals an die Öffentlichkeit gelangen!

Das war der komplette Beantragungsvorgang – mehr gibt es hier nicht zu tun!

Konfiguration der Services

So ziemlich jeder Service verlangt seine Zertifikate in einer anderen Form – aber mit den von Let’s Encrypt angelegten Dateien sollte jeder Anwendungsfall abgedeckt sein.

Gerne füge ich Beispiele für weitere Dienste hinzu! Kommentieren Sie einfach, welchen Dienst Sie sich wünschen!

Apache-Webserver (ab 2.4.8)

Apache-Webserver (unter 2.4.8)

nginx-Webserver

Dovecot-IMAP

Postfix

Automatische Erneuerung (Renewal)

Die Zertifikate von Let’s Encrypt laufen schon nach 90 Tagen aus. Ob diese Entscheidung der CA nun Sinn macht oder nicht, sei mal dahin gestellt – wir erledigen den Renewal vollautomatisch per Crontab:

Inhalt der /opt/letsencrypt/cli.ini:

Danach sollte man natürlich noch ein Reload der betroffenen Dienste einfügen – das lasse ich nun aber an dieser Stelle mal offen.

Fazit

Gerne installiere und konfiguriere ich Ihre SSL-Umgebung – kontaktieren Sie mich!

Die Nutzung von Let’s Encrypt ist erfreulich einfach – alle benötigten Dateien werden geliefert, man muss sich nicht seine eigenen Chains zusammenbauen und kann die Files einfach direkt in die Dienste einfügen.

Durch Let’s Encrypt fällt so ziemlich jede Hürde, SSL einzusetzen: es ist kostenlos, einfach zu beantragen und noch einfacher zu nutzen.

3 Gedanken zu “Let’s Encrypt nutzen – eine Anleitung

  1. Hallo,

    tolle Anleitung, jedoch habe ich ein problem.
    BS: Debian 8 + Plesk 12.5
    Imap: Dovecot (läuft auch, SSL ok)
    SMTP: Postfix

    Ich kann Emails empfangen jedoch ein Senden über SSL / TLS oder StartTLS ist nicht möglich.
    Über SSL/TLS bekomme ich ein Error 5.1.1 rejected und über StartTLS bekomme ich die Meldung das der SMTP nicht laufen soll. (er lauscht eben nicht auf StartTLS)

    Hast du noch einen Ansatz für mich?

  2. Hallo Dominic,

    Vielen Dank für das Tutorial. Ich habe wenig Erfahrung mit Konfiguration von Servern und wollte fragen, in welchem File ich für Apache-Webserver (ab 2.4.8) die Konfiguration für den Server (die Befehle für SSL) eintragen muss.

Schreibe einen Kommentar