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.

4 thoughts on “Let’s Encrypt Zertifikat manuell erstellen

  1. Christina

    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

    Reply
    1. Marco Horstmann Post author

      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.

      Reply
  2. Daniel

    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.

    Reply
    1. Marco Horstmann Post author

      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.

      Reply

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.