LetsEncrypt Zerfikate manuell erstellen am Beispiel Hosteurope

Wie kann ich ein LetsEncrypt-Zerfifikat manuell erstellen und installieren?

Vor ein paar Monaten habe ich einen Artikel auf meiner privaten Webseite geschrieben, wie man LetsEncrypt bei Hosteurope einrichten und nutzen kann. Der Ansatz funktioniert mit einem Script und lässt sich damit zum großen Teil automatisieren. Leider funktioniert er nicht bei allen Tarifen, in kleinen Tarifen fehlt die Unterstützung für den CURL-Befehl über SSH.

Daher kann die Anfrage, wie man die Sache manuell einrichten kann. Dies geht, ist etwas umständlicher, aber die einzelne Domain sicher noch praktikabel. Für die Erstellung verwenden wir „certbot“ im Linux-Subsystem von Windows. Das Linux-Subsystem in Windows einrichten ist in wenigen Minuten erledigt.

Installation Certbot

Wir verwenden ein Ubuntu im Beispiel. Nach dem Start führen wir zuerst ein Update auf die Paketquellen durch und installierten anschließend „certbot“

sudo apt-get update
sudo apt-get install certbot

SSL-Zertifikat mit LetsEncrypt manuell erstellen

Zuerst legen wir unsere Domain als Variable an:

DOMAIN=blogtest.ekiwi.de

Anschließend führen wir mit folgendem Befehl die Validierung und Zertifikatserstellung durch.

sudo certbot certonly --manual -d *.$DOMAIN -d $DOMAIN --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory --register-unsafely-without-email --rsa-key-size 4096

Die Validierung erfolgt in diesem Fall über DNS-Authentifizierung. Im Beispiel legen wir für die Domain „blogtest.ekiwi.de“ ein Zertifikat an.

Das Script spuckt uns nun eine Validierungscode aus, welchen wir als TXT-Eintrag im DNS unserer Domain anlegen müssen. Hier erst Enter drücken, wenn der Eintrag angelegt ist.

Anlegen des DNS-Eintrags

In unserem Beispiel legen wir den DNS-Eintrag im KIS von Hosteurope an. Bei anderen Webhostern wird es grundsätzlich ähnlich funktionieren. Wir klicken auf die Domain-Services und anschließend auf „Nameserver- / DNS-Einträge bearbeiten“.

Hier editieren wir nun den Eintrag für unsere Domain, im Beispiel ekiwi.de.

Hier legen wir nun einen neuen Eintrag an: „_acme-challenge.blottest.ekiwi.de“. Typ TXT und als Inhalt den Schlüssel, welchen das Script oben ausgegeben hat.

Anschließend wechseln wir zurück zu unserer Linux-Konsole und drücken Enter. Hat alles geklappt, wird eine Erfolgsmeldung ausgegeben, die Zertifikate erstellt und abgelegt.

Die Zertifikate kopieren wir nun erstmal in einen Pfad, von welchem wir mit Windows Zugriff haben.

sudo su
cd /etc/letsencrypt/live/blogtest.ekiwi.de
cp * /mnt/c/_temp

Anschließend liegen die Dateien auf unserem c:\ Laufwerk unter _temp:

Zertifikate bei Hosteurope einspielen

Nun müssen wir die Zertifikate noch bei Hosteurope einrichten und hochladen. Dazu gehen wir im KIS auf „Sicherheit & SSL“ – „SSL administrieren“.

Wir unsere Domain ersetzen wir nun das Zertifikat.

Beim Zertifikat wählen wir die „fullchain.pem“ aus, beim Key „privkey.pem“.

Mit dem Klick auf Absenden werden die Dateien übernommen.

Nach ein paar Minuten sollte das Zertifikat aktiv sein. Ggf. F5 im Browserfenster drücken. Wir prüfen das Zertifikat und siehe da, alles ist eingerichtet:

Viel Erfolg!

15 Kommentare

  1. Hi Andy,

    danke für die Beschreibung. Allerdings macht HE einem einen Strich durch die Rechnung, indem es für Webhosting Pakete bestimmte Befehle nicht zulässt:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Einschränkungen

    Folgende Funktionen stehen Ihnen erst ab unseren WebServer Produkten zur Verfügung:

    Kommandozeilen Zugriff auf MySQL
    Benutzerwechsel (von wp nach ftp) via sudo
    Aufbau von Verbindungen zu externen Servern (z.B. via cURL, wget oder aus einem Skript heraus)
    Login mit SSH-Keys
    git und svn Repositories
    Die Nutzung von Composer

    Quelle: https://www.hosteurope.de/faq/webhosting/webpack/ssh-zugang-webhosting/
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Bei sudo bekomme ich die Nachricht, dass der Befehl unbekannt ist…

    Gibt es eine Möglichkeit, den certbot einfach hochzuladen wie du es mit dem myletsencrypt Script gemacht hast? Oder eine andere Vorgehensweise?

    Vielen Dank schon jetzt!

  2. OK, dann ist man mit einem Webhosting Paket aufgeschmissen?
    Mit dem genannten Script habe ich angefangen, weil ich dein Video auf YT gesehen habe. Leider blockiert es cURL, also nicht machbar.

    Könnte man die Schritte des Scripts nicht manuell durchführen? Installiert das Script den Certbot zuerst?

    1. Genau mit einem normalen Webhosting-Paket geht es nicht. Mit der Methode hier, geht es, da Du das Certbot ja lokal auf Deinem Computer ausführst.

      Gruß
      Andy

  3. Wie schade, dass es mit dem Webhosting Paket nicht funktioniert…kann man die Schritte des Scripts nicht manuell ausführen?

  4. Vielen Dank für die Anleitung! Auf Webseiten bei welche ich Zugriff auf die DNS records habe, hat dies tadellos funktioniert!
    Doch bei einigen Seiten habe ich nur FTP Zugriff auf die Dateien auf dem Server, aber nicht auf die DNS records.
    Ich habe versucht die Zertifikate via http challenge zu generieren, aber leider erfolglos. Ich erhalte eine Fehlermeldung http challenge sei nicht ausreichend, ich müsse zusätzlich auch noch eine dns challenge ausführen… witzlos.
    Wie kann ich Zertifikate nur mit http challenge generieren? Bei zerossl ging das, aber die wollen jetzt Geld für den Service.

      1. Hatte ich auch probiert. Leider scheitert bei mir das script schon beim erstellen des temp files (tempnam() Funktion). Mein SSH Zugang bei hosteurope scheint ganz arg eingeschränkt zu sein…

Kommentar hinterlassen

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