DE: Let’s Encrypt Zertifikat manuell erstellen

So diese Woche war es soweit. Nachdem mein Webspace lange lange Zeit auf einem alten DOMAINbox System geschlummert hat, hat diese Woche Host Europe Nägel mit Köpfen gemacht und meinen bestehenden Webspace umgezogen auf eine neue technische Plattform. Ich hatte einige Sachen danach zu reparieren ähhh anzupassen. In dem Zuge habe ich mir auch das “KIS” angeschaut, was deren Administrationssystem ist. Soviel Luxus war ich ja gar nicht gewöhnt. Dort habe ich dann eine Möglichkeit gefunden SSL Zertifikate zu hinterlegen. Natürlich könnte ich auch eins kaufen, jedoch habe ich von Let’s Encrypt, wo es kostenlose Zertifikate geben soll, gehört. Da ich dieses Projekt spannend fand habe ich mich dazu entschlossen dies einfach mal auszuprobieren.

Basis dieses Projektes ist der sogenannte Certbot, er soll über das ACME-Protokoll die Erstellung der Zertifikate automatisieren. Hierfür legt der Certbot auf Anfrage kryptische Daten mit kryptischem Inhalt an und der Server prüft, ob es diese Dateien und dessen Inhalt gibt, damit er sich sicher sein kann, dass wir wirklich Zugriff auf diese Domains haben.

Da ich nur ein einfaches Webhosting-Paket habe kann ich diesen Certbot nicht wie vorgesehen auf meinem Webserver installieren. Also muss Trick 17 her. Dieser Trick besteht darin, dass ich den Certbot auch auf meinem MacBook unter MacOS Sierra ausführen kann. Das Anlegen der Dateien muss ich dann bloß selber bewerkstelligen. Da ich irgendwie hierfür aber keine wirkliche Dokumentation und Tipps gefunden habe, musste ich das nun selbst austüfteln. Damit ihr das nicht auch noch austüfteln müsst folgt hier nun eine kleine Anleitung des Vorgangs.

Als Erstes muss sichergestellt werden, dass Xcode installiert ist. Wenn dies nicht der Fall ist, dann installiert Xcode vom App Store (Hier klicken). Nachdem dann Xcode installiert ist muss noch die Lizenzvereinbarung akzeptiert werden. Dies kann man machen indem man das Xcode startet oder mit folgendem Kommando in einem Terminal:

sudo xcodebuild -license accept

Für MacOS wurde der Certbot via Homebrew paketiert. Daher müssen wir zunächst Homebrew installieren. Dies erfolgt mit diesem Kommando:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Danach kann dann der Certbot für Let’s Encrypt installiert werden:

brew install certbot

So nun ist das Vorgeplänkel vorbei. Die nötige Software ist auf meinem MacOS und wir können loslegen, die Zertifikate zu generieren. Hier können und müssen wir mehrere Parameter angeben. Dieses Zertifikat wird für mehrere Domains erstellt. Mit dem Parameter “-d” gebe ich an für welche Domains ich ein Zertifikat erstellen möchte. Dieser und folgende Schritte sollten auch auf anderen unterstützten Plattformen genutzt werden können.

sudo certbot certonly --manual -d horstmann.in -d www.horstmann.in --manual-public-ip-logging-ok

Performing the following challenges:
http-01 challenge for horstmann.in
http-01 challenge for www.horstmann.in
——————————————————————————-

Für jede Domain, die ich angegeben habe, zeigt er mir nun an welche Datei ich mit welchem Inhalt anlegen soll. Ich habe mich via Forklift mit meinem FTP verbunden und habe dann damit die Datei angelegt und den Inhalt reinkopiert.

Make sure your web server displays the following content at
https://horstmann.in/.well-known/acme-challenge/Fzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0 before continuing:
FzfxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxU
Press Enter to Continue 

Wenn das erledigt ist, muss man “Enter” drücken. Danach kommt diese Aufforderung nochmal so oft, wie ich Domains angegeben habe. Nun überprüft er die Domains und stellt dann, wenn ihr alles richtig gemacht habt, das Zertifikat aus.

Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/horstmann.in/fullchain.pem. Your cert will
   expire on 2017-04-28. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

So nun liegen die Zertifikate in dem /etc/letsencrypt Ordner. Der ist mit einem normalen Benutzer nicht zu öffnen. Ich habe mir die Dateien mit sudo und chown zugreifbar gemacht.

sudo cp -r /etc/letsencrypt/ /Users/marco/Documents/sslcert
cd /Users/marco/Documents/sslcert
sudo chown marco *

So nun müssen wir noch bei Host Europe das Zertifikat hinterlegen. Hierfür gehen wir ins KIS und hinterlegen im Webhosting-Paket unter “Sicherheit & SSL > SSL administrieren” für die Domain nun die Zertifikate. Als Zertifikat wähle ich die “live/horstmann.in/fullchain.pem” aus, die das Serverzertifikat beinhaltet. Als Key wähle ich die Datei “live/horstmann.in/privkey.pem” aus, da dies der Server für die Verschlüsselung benötigt. Passwort und CA sind optional, jedoch hatte ich bei der CA noch das Intermediate Certificate hinterlegt. Dies habe ich nur sicherheitshalber gemacht.

You may also like...

6 Responses

  1. Christina says:

    Vielen Dank für diese Anleitung! Nachdem ich bei meinem Anbieter zwar Konsolenzugriff aber keine root-Rechte habe, muss ich wie du das Zertifikat lokal erzeugen. Ich hatte schon eine ganze Weile herumgesucht, und alle Anleitungen, die ich bisher gefunden hatte, wurden vom Webserver ausgeführt, auf den der DNS-Eintrag der Domain zeigt. Ich dachte schon, das wird nichts mehr, bis ich auf deinen Artikel gestoßen bin.

    Ich verwende dazu Ubuntu Linux, und hier lautet der Befehl “certbot-auto” statt “certbot”, d.h. es sieht so aus (ausgeführt als root):

    ./certbot-auto certonly –manual -d gewuenschte-domain.com –manual-public-ip-logging-ok

    Viele Grüße
    Christina

    • Marco Horstmann says:

      Hi Christina, danke für deinen Kommentar. Ich bin bisher nur dazu gekommen das auf meinem Mac zu testen und
      freue mich grade, dass mit deinem Kommentar nun auch Linux Anwender den passenden Befehl finden.

  2. Daniel says:

    Ich habe Deinen Artikel für Domains bei HE als Vorlage verwendet. Danke dafür :-)

    Jetzt musst eich noch eine Domain ergänzen. In der Doku ist der –expand-Befehl zum hinzufügen einer zusätzlichen Domain etwas undeutlich beschrieben. Hier steht aber alles, was man braucht: https://github.com/certbot/certbot/issues/3664

    In unserem Fall sähe so ein Befehl dann so aus:

    sudo certbot certonly –manual –expand -d bestehende-domain.de -d http://www.bestehende-domain.de -d neue-domain.de

    Vielleicht hast Du ja Lust, das in Deinem Artikel zu ergänzen.

    • Marco Horstmann says:

      Danke werde ich machen, mein Sohn hat mich momentan so auf trab gehalten dass ich die letzten 2,5 Monate hier nix mehr gemacht habe.

  3. Michael Kammler says:

    Tausend Dank für Deine tolle Anleitung Marco. Die hat mir sehr geholfen! Ich war zwar zuerst skeptisch, dass die Anleitung aus dem Jahr 2017 noch funktioniert, weil sich ja ständig und immer alles ändert, doch einen Versuch war es mir wert.

    Ich möchte meine Erfahrung bei der Installation gerne aufschreiben weil ich der Meinung bin, dass man auch Anderen helfen kann, die ähnliche Probleme bei der Installation haben:

    Habe meine Homepages genau wie Du auch bei Host Europe und das einfache Webspace-Paket. Vorher war ich auch bei DomainBox und anfangs war ich bei Host Europe sehr unzufrieden. Bei Domainbox war alles sehr viel einfacher mit der Plesk-Software!

    Bisher hatte ich meine kostenlosen Zertifikate über SSL for free und später dann über ZeroSSL. Leider kann ich die bei ZeroSSL nicht mehr kostenfrei generieren und ich weigere mich einfach in die Kostenschiene gedrückt zu werden. So musste eine andere und natürlich kostenfreie Lösung her.

    Es hat mich über einen Tag Recherche gekostet bis ich auf Deine tolle Anleitung gestoßen bin.
    Dann habe ich mich gefragt: bekomme ich das hin…
    Nach mehrmaligem Lesen habe ich gesagt: OK ich probiere das aus….

    Wollte mir natürlich über den App-Store Xcode laden. Dieser Versuch scheiterte, da ich immer noch Mac OsX 10.14.6 nutze. Ein Upgrade auf OsX BigSur kommt zur Zeit nicht infrage, da ich Software habe die darunter nicht mehr läuft. Also recherchierte ich weiter und konnte mir über die Apple Developer Seite eine frühere Version von Xcode laden, was normalerweise für Privatleute nicht möglich ist. Habe dann eine Homepage gefunden, über die man dann doch von der Apple Developer Seite die früheren Versionen laden konnte.
    Die Installation von Xcode verlief dann problemlos und ich konnte Deiner Anleitung weiter folgen.
    Hatte ich noch nie vorher mit dem Terminal gearbeitet (hatte mich nie rangetraut), so lief es nach Deiner Anleitung dann völlig problemlos weiter.

    Der erste Problempunkt war dann, dass die erzeugten challenges die ich hochgeladen hatte nicht verifiziert werden konnten. Erhielt immer eine Fehlermeldung.
    Das war dadurch entstanden, dass ich diese mit Textedit angelegt hatte und im RTF-Format vorlagen. Bis ich dahinter kam verging eine Weile und durch entsprechende Formatierung konnte ich diese als reinen Text abspeichern und hochladen.
    Die Verifizierung klappte dann auch….

    Dann lief alles wie am Schnürchen. Hatte schließlich meine erzeugten Zertifikatsteile und wollte die nun bei Host Europe im KIS hochladen.
    Genau wie Du beschrieben hast habe ich die fullchain.pem sowie die privkey.pem ausgewählt. Leider hat sich das KIS immer wieder aufgegangen und diese Dateien wurden nicht akzeptiert.
    Als Idee kam mir (ich hatte mal ein kostenpflichtiges Zertifikat vor Jahren von Geotrust) mir die Zertifikatsteile von damals mal anzusehen.
    Die Zertifikatsteile von damals hatten andere Endungen. So habe ich dann die fullchain.pem in fullchain.crt und die privkey.pem in privkey.key umbenannt und erneut hochgeladen. Das hat dann letztlich funktioniert und ich bin mit dem Ergebnis mehr als zufrieden…..
    Das Zertifikat ist nun für drei Monate gültig und dann erneuere ich es eben wieder.

    Also falls jemand ähnliche Probleme haben sollte einfach mal meine Erfahrungen mit einbeziehen……

    Zum Abschluss nochmals ein Dankeschön an Deine tolle Schritt für Schritt Anleitung.

    Viele liebe Grüße
    Michael

    • Marco Horstmann says:

      Danke für dein Feedback. Ich bin inzwischen auf ein neues Paket umgestiegen und da war das SSL Zertifikat dann mit drin,
      sodass ich diese Schritt für Schritt Anleitung selber garnicht mehr nutzen muss. Umso mehr freut es mich dass es dir weitergeholfen hat.

Leave a Reply

Your email address will not be published. Required fields are marked *

four × 1 =