Skip to main content

Debian 9 Stretch – Let´s Encrypt Zertifikate mit certbot erstellen

Unter Debian 9 Stretch kann man sich sehr einfach gültige SSL Zertifikate von Let´s Encrypt erstellen. Wie das genau innerhalb weniger Minuten funktioniert können sie hier nachlesen.

Später benötigen wir einen Webserver. In dieser Anleitung verwende ich nginx dafür. Solltet ihr noch kein nginx installiert haben, dann führt einfach folgenden Befehl aus:

Um das Tool zu installieren müssen einfach folgende Befehle eingegeben werden.

Nun erstellen wir die benötigten „Freigaben“, damit certbot unsere Identität überprüfen kann. Dazu gebt ihr folgendes in die Konsole ein:

Als nächstes erstellen wir das Verzeichnis, in dem alle Zertifikats-Anfragen bearbeitet werden sollen.

Damit euer nginx Server nun die Anfragen von certbot beantworten könnt, müsst ihr folgende Zeile in eurer nginx Konfiguration hinzufügen:

Dies wäre also zum Beispiel in der „Default“ Konfiguration:

Diese Zeile müsst ihr in ALLE Konfigurationen hinzufügen, die ein Zertifikat bekommen sollen.

Nun muss nginx neu gestartet werden, damit die Einstellungen wirken.

Nun müsst ihr festlegen, für welche Domains euer Zertifikat gültig sein soll.

Erklärung:

Nun werdet ihr gebeten eine Email Adresse als Kontakt zu hinterlegen.

Wenn ihr fertig seid und alles funktioniert hat, dann sollte es bei euch auch so aussehen.

Einbinden in nginx

Einbinden in Apache2

 

 

Christian

Christian

Ich studiere derzeit Informatik und betreibe in meiner Freizeit diesen Blog.
Auf die Idee kam ich, als ich Anleitungen zum Thema Debian gesucht habe. Leider waren viele Anleitungen veraltet und daher nutzlos.

Da kam ich auf die Idee selbst Anleitungen zu schreiben.
Wenn meine Anleitungen auch veraltet sein sollten, dann schreibt mir das bitte und ich versuche sie zu aktualisieren.

Wer mich (finanziell) unterstützen möchte, der kann mir hier gerne etwas spenden 🙂
PayPal
https://paypal.me/goNeuland
BTC
1GHRnh6DvdPE4FFpxGbEQu6m4sgnrjpoxM
ETH
0x53d3005663026F96e7cCCa39D14fA487e1072318

Danke 🙂
Christian

Christian

Ich studiere derzeit Informatik und betreibe in meiner Freizeit diesen Blog. Auf die Idee kam ich, als ich Anleitungen zum Thema Debian gesucht habe. Leider waren viele Anleitungen veraltet und daher nutzlos. Da kam ich auf die Idee selbst Anleitungen zu schreiben. Wenn meine Anleitungen auch veraltet sein sollten, dann schreibt mir das bitte und ich versuche sie zu aktualisieren. Wer mich (finanziell) unterstützen möchte, der kann mir hier gerne etwas spenden :) PayPal https://paypal.me/goNeuland BTC 1GHRnh6DvdPE4FFpxGbEQu6m4sgnrjpoxM ETH 0x53d3005663026F96e7cCCa39D14fA487e1072318 Danke :)

14 Kommentare zu “Debian 9 Stretch – Let´s Encrypt Zertifikate mit certbot erstellen”

  1. Sieht schick einfach auch. Danke.

    Aber wie wird das Zertifikat aktualisiert? Geht das dann automatisch?  Let´s Encrypt Zertifikate halten ja nur drei Monate.

  2. Hallo!

    Auch hier Danke für den hilfreichen Artikel! Wozu genau ist das Verzeichnis für die „Freigaben“? Ist es sinnvoll, dieses in Document-Root vom Webserver zu legen? Spielt das eine Rolle?

    Viele Grüße

    Robin

    1. Während das Zertifikat angefordert wird, werden dort in diesem Verzeichnis temporär Dateien abgelegt. Daher das extra Verzeichnis. Das Verzeichnis kann egal wo abgelegt werden.

  3. Hallo Christian,
    danke für die tolle Anleitung.

    Ich habe nur eine Frage zu dem Punkt mit den Freigaben.

    gebe ich dies wirklich so 1:1 im Terminal von Mac (Verbunden mit einem Raspberry Pi mit Raspian Stretch) ein? Mit diesen Zeilenumbrüchen scheint das bei mir nicht zu klappen.

     

    VG David

    1. Bei mir funktioniert der Befehl.
      Du kannst die Datei aber auch von Hand erzeugen. Dann sollte es auf jeden Fall funktionieren.

      Dazu erstellst du die Datei:
      nano /etc/nginx/snippets/letsencrypt.conf
      und schreibst folgendes in die Datei:
      location ^~ /.well-known/acme-challenge/ {
      default_type text/plain;
      root /var/www/letsencrypt;
      }

  4. Hallo Christian,

    ich habe mit Hilfe deiner Anleitung angefangen mir Nextcloud auf meinem Homeserver zu installieren.
    Wie kann ich denn diese Anleitung für meinen Homeserver einsetzen, wenn ich entweder per localhost, oder per dyndns Zertifizieren möchte.

    LG,

    Felix

  5. Hallo Crisrtian

    an welcher position  in der /etc/nginx/sites-available/default , müssen die 3 zeilen eingetragen werden?

    ssl on;
    ssl_certificate /etc/letsencrypt/live/eureDomain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/eureDomain.de/privkey.pem;

     

    LG Tom

  6. Hallo Christian!

    Ich würde gern eine Nextcloud-Installation auf einem Cubietruck mit Armbian (Debian Stretch) aufbauen. Diese soll nur im Heimnetz erreichbar sein, von außen verwende ich einen VPN-Zugang zum Heimnetz.
    Für das SSL-Zertifikat benötigt man nach deinem Vorschlag eine eigene Domain, die ich im Heimnetz nicht habe bzw. brauche.
    Was verstehe ich nicht? Was müsste ich ändern, da die selbst erstellten Zertifikate ja neuerdings problematisch sind.
    Danke für die sehr hilfreichen Artikel!
    Grüße Alois

  7. Hallo,
    Ich bin grad dabei dein Tutorial, das einzig hilfreiche was ich fand, zum Einrichten eines Mailservers abzuarbeiten. Ich habe schon zuvor mit Debian und Apache gearbeitet, und da ich auf meinem neuen Server nun mal schon Apache mit PHP 7.2 und neuster MariaDB-Version installiert habe, hatte ich keinen bock nochmal alles für nginx zu machen, auch wenn mir im Nachhinein die Vorteile von nginx gegenüber Apache klar sind. Ich habe das Tutorial bis zum Schritt 6 (Postfix konfigurieren) mit dem Apache erfolgreich durchgeführt (ggf. ein Paar sachen umgeschrieben), dann habe ich mich aber dazu entschieden vor dem Fortfahren erstmal die SSL-Zertifikate einzurichten. Oben im Tutorial war ein Link hierher, wo leider auch alles mit nginx durchgeführt wurde. Da die Tutorials bisher so fehlerfrei verliefen schrieb ich einfach die Anleitung für mich ein wenig um, und bis zum Schritt wo man den Apache / nginx neustarten soll hat alles geklappt. Nun meldet mein Apache ein Problem mit dem Syntax von dem Befehl in /etc/apache2/snippets/letsencrypt.conf (bei dir im Tutorial wäre das dann /etc/nginx/snippets/letsencrypt.conf), was wahrscheinlich einfach an dem Unterschied der beiden Server liegt. Wüsstest du wie ich die „location“ anweisung (erste Zeile, Grund für Fehlermeldung) für den Apache umschreiben könnte?

    1. Hallo,
      ich habe mich bisher noch nie mit apache2 beschäftigt. Daher kann ich dir so leider keinen Rat geben.
      Im Internet sollten aber bestimmt verschiedene Tutorials dazu sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.