LetsEncrypt Zertifikat auf einem Linux Server installieren

  • Ein LetsEncrypt Zertifikat auf einem Linux Server installieren.

    LetsEncrypt hat es sich zum Ziel gemacht, den Traffic im Internet so sicher wie möglich zu gestalten. Durch eine unsichere Verbindung, welche über das http Protokoll die Daten austauscht, können eben diese Verbindungen mitgelesen und manipuliert werden.


    Zu erkennen ist in der Browserleiste eine http (unsichere) Verbindung:



    Aus diesem Grunde bietet LE als certificate authority (Zertifizierungsstelle) kostenfreie Zertifikate an.

    Was je nach Zertifikat im Bereich von ca. 25€ / Jahr liegt, wird hier kostenfrei angeboten.


    Eine bequeme Installation, bei der nicht viel zu beachten ist, ermöglicht auch dem Anfänger eine zertifizierte Verschlüsselung des eigenen Webservers.

    Dabei können alle gängigen Webserver (Apache, NGINX, IIS) genutzt werden.


    Los gehts!
    Im folgenden wird ein KVM vServer genutzt, welcher noch keinerlei Konfigurationen erhalten hat. Das System sollte, wie immer, auf aktuellstem Stand sein.

    Zunächst muss ein weiteres Repository (Weitere Informationen: Linux – Updaten und Upgraden) der sources-list hinzugefügt werden.


    Dazu den folgenden Befehl ausführen:

    echo deb http://ftp.de.debian.org/debian/ stretch-backports main >> /etc/apt/sources.list


    Tipp: Die einfache spitze Klammer (>) überschreibt die Datei, zwei spitze Klammern (>>) hängt etwas der Datei an. Da die Repositorys nicht überschrieben werden sollten, wird hier die Umleitung zum anhängen genutzt.

    Als nächstes die Paket Listen updaten. Dazu apt update nutzen.


    Nun folgt die Installation des Webservers in Kombination mit Paketen aus dem zuvor angelegten Repository:

    apt install apache2 python-certbot-apache -t stretch-backports -y


    Tipp: Mit dem Parameter „-y“ wird dem „apt install“ Befehl mitgegeben, dass alle Anfragen während des Installationsprozesses bejaht werden sollen.

    Nur anzuwenden wenn bekannt ist, welche Fragen auftreten!


    Die Zertifizierung erfolgt über einen FQDN. Daher ist es notwendig, einen A-Record der Domain auf den Webserver zu setzen. Falls dabei Fragen auftreten, steht der MK-Hosting Support gerne zur Verfügung!


    Tipp: Da LE den Nachweis über das DNS erbringt, kann hier keine eigene bzw. kryptische URL verwendet werden.


    Anschließend die /etc/apache2/sites-enabled/000-default.conf Datei bearbeiten. Dazu den Eintrag #ServerName www.example.com so bearbeiten, dass dort der Hostname steht. Der Hostname ist mit nano /etc/hosts und nano /etc/hostname anzupassen.


    In diesem Fall lautet der Hostname zertifikat.mk-hosting.net.


    Nach einem Neustart des Systems kann diese Konfiguration beendet werden.


    Mit dem Befehl certbot --apache wird die abschließende Konfiguration gestartet.

    Als erstes erfolgt eine Abfrage zu einer gültigen E-Mail Adresse. Da das Zertifikat alle 3 Monaten erneuert werden muss, werden entsprechende Benachrichtigungen darüber verschickt, dass sich die Gültigkeit des Zertifikates dem Ende nähert.

    Mit dem zusätzlichen Parameter --register-unsafely-without-email kann der Vorgang ohne das verwenden einer E-Mail Adresse durchgeführt werden.


    Tipp: Das erneuern kann entweder bequem über einen Cronjob (crontab -e) durchgeführt werden, oder durch das absetzen des Befehls certbot renew.


    Anschließend die Lizenzbestimmungen akzeptieren. Es folgt die Frage, ob die eingegebene E-Mail Adresse zu verschiedenen Zwecken genutzt werden darf. Hier kann nun frei entschieden werden, ob dem zugestimmt wird, oder nicht.

    Nun folgt bereits die Abfrage, für welche Domain das Zertifikat installiert werden soll.


    Das entsprechende Zertifikat auswählen und fortfahren.


    Der Mechanismus arbeitet kurz und es folgt die Frage, ob die Weiterleitung / Umleitung der http Anfragen auf https erfolgen soll. Option 2 wählen: redirect.

    Sollte somit der Webserver über http aufgerufen werden, wird die Anfrage automatisch zum https Protokoll umgleitet, sodass die Verschlüsselung greifen kann.




    Abschließend folgt diese Meldung:

    Die Einrichtung des Zertifikates ist nun abgeschlossen und die Verbindung über https ist gegeben.

  • Zu beachten gilt hier, dass wir nicht nur von Debian Stretch sprechen.

    Da es durchaus nur Debian 6 und 7 Versionen (und natürlich weitere Distributionen) gibt, müssen diese Repos ebenfalls angepasst werden.


    Bei den Backports Repos handelt es sich lediglich um Quellen, welche neu kompiliert aus zukünftigen Versionen entstehen.

    Was genau man daran "eigentlich nicht macht", ist mir jedoch immer noch nicht klar.


    Wie gesagt. Hier ist nicht nur exklusiv Debian Stretch. Sonst hätte ich es mit dazu geschrieben :)

    Insofern gilt, wie bereits geschrieben, dass alles korrekt ist, wie es in der Anleitung steht.


    Beste Grüße

  • Debian 6 und 7

    Diese Versionen sind bereits EOL, somit sollte es dafür auch keine aktuellen Anleitungen mehr geben.


    und natürlich weitere Distributionen

    Da APT standardmäßig nur von Debian verwendet wird, ist es auch hier wieder unnötig

    Natürlich verwenden auch auf Debian basierende Distributionen wie z.B. Ubuntu APT, aber auch dort existiert der Let's Encrypt Certbot in der aktuellen Version.


    Nun komme ich zum Schluss, dass die einzige Version/Distribution, die weitere Paketquellen für den Let's Encrypt Certbot benötigt, Debian 8 (Jessie) ist.

    Deshalb würde ich einen Hinweis hinzufügen, dass lediglich unter Debian 8 (Jessie) die Backports-Paketquelle (jessie-backports) hinzugefügt werden muss.