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!
Einfach nur dankeschön :o)
Danke für das Feedback. 🙂
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!
Diese Lösung von mir könnte etwas für Dich sein:
https://andydunkel.net/2020/05/31/update-letsencrypt-bei-hosteurope-mit-script-einrichten/
So mache ich das auch. Voraussetzung ist ein Tarif ab Webserver bei Hosteurope.
Gruß
Andy
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?
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
Wie schade, dass es mit dem Webhosting Paket nicht funktioniert…kann man die Schritte des Scripts nicht manuell ausführen?
Darum geht es doch in diesem Artikel!?
Ich meinte es so, dass man um das Installieren des Certbots auf dem Server rumkommt…
Bei dieser Anleitung hier wird certbot lokal installiert auf dem rechner nicht auf dem server
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.
Ich habe mir das mit einem Script automatisiert:
https://andydunkel.net/2020/05/31/update-letsencrypt-bei-hosteurope-mit-script-einrichten/
Gruß
Andy
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…
Habe es jetzt hingekriegt mit einem anderen Zertifizierungsserver. Dieser begnügt sich mit der http challenge:
sudo certbot certonly –manual -d $DOMAIN –preferred-challenges http-01 –server https://api.buypass.com/acme/directory