Host Europe – SSL-Zertifikate von Let’s Encrypt einrichten

Host Europe bietet keine direkte Unterstützung von Let’s Encrypt in deren Systeme an. Jedoch besteht bei den WebHosting-Paketen die Möglichkeit im Kunden-Informations-System (KIS) eigene SSL-Zertifikate einzubinden. Auf selbstadministrierten Server-Produkten besteht die Möglichkeit Let’s Encrypt zu installieren und dadurch die volle Unterstützung inkl. automatischer Verlängerung einzurichten. In diesem Artikel möchte ich die Einrichtung von Let’s Encrypt SSL-Zertifikaten in den WebHosting-Paketen beschreiben. Da in diesen Paketen die Installation von Let’s Encrypt nicht möglich ist, muss das SSL-Zertifikat über einen Anbieter erstellt und im Kunden-Informations-System von Host Europe der Domain zugeordnet werden. Für die Erstellung der SSL-Zertifikate habe ich den Anbieter ZeroSSL verwendet.

Was ist Let’s Encrypt?

Let’s Encrypt ist eine Certificate Authority (CA) welche seit Ende 2015 kostenlos und voll automatisiert SSL-Zertifikate anbietet. Let’s Encrypt ist ein von der Internet Security Research Group (ISRG) angebotener Dienst, welcher von Firmen wie Akamai, Cisco und Mozilla unterstützt wird. Ziel von Let’s Encrypt ist ein verschlüsseltes Internet zu schaffen und dass für jeden, einfach und kostenlos. Unsichere und vor allem für jeden lesbare Kommunikation im Internet soll damit verringert werden. Seit es Let’s Encrypt gibt, wurde auch die Zahl der sicheren HTTPS-Verbindungen im Internet deutlich erhöht. Im Januar 2017 waren bereits 50% aller Verbindungen mit einer Verschlüsselung geschützt. Die SSL-Zertifikate werden von den wichtigsten Browsern und Betriebssystemen unterstützt. Diese sind zwar nur für einen bestimmten Zeitraum gültig, können aber unbegrenzt und kostenlos verlängert werden. Die über Let’s Encrypt erstellten SSL-Zertifikate sind über die Domain validierte Zertifikate. Die SSL-Zertifikate bestätigen nicht den Eigentümer der Domain sondern nur die Domain bzw. den Inhaber der Domain. Möchte man ein SSL-Zertifikat, welches auch den Eigentümer (Person oder Firma) bestätigt muss man weiterhin diese bei den entsprechenden Anbietern erwerben, da solche Prozese nur sehr schwer bis gar nicht automatisiert werden können und auch von Let’s Encrypt aktuell nicht angeboten werden. Durch das Automated Certificate Management Environment (ACME) kann Let’s Encrypt eine API bzw. Verbindung zu den Zertifikatsservern anbieten, um SSL-Zertifikate automatisiert zu erstellen. So können auch Anbieter wie ZeroSSL eine Oberfläche zur Erstellung von SSL-Zertifikaten anbieten. Es gibt natürlich auch andere Anbieter und Bibliotheken für verschiedene Sprachen um über das ACME-Protokoll Zertifikate zu erstellen. Die über ZeroSSL erstellten SSL-Zertifikate sind 90 Tage gültig und müssen anschließend wieder manuell verlängert werden. Alle Daten welche bei ZeroSSL eingegeben werden, bleiben im Browser und werden nicht auf den Servern von ZeroSSL gespeichert (weitere Informationen auf der Website von ZeroSSL). Die Verwendung von ZeroSSL ist sehr einfach und setz nur wenig technisches Wissen voraus.

Erstellen des SSL-Zertifikats bei ZeroSSL

Über ZeroSSL können selbst signierte Zertifikate und SSL-Zertifikate von Let’s Encrypt erstellt werden. Die selbst signierten Zertifikate sind nicht für den öffentlichen Gebrauch geeignet, und sollten nur zum testen auf dem eigenen Servern verwendet werden. Die Oberfläche ist dabei mehrsprachig und somit in den Sprachen Englisch, Deutsch, Französisch, Spanisch und Russisch verfügbar. Alle eingegebenen Informationen werden dabei direkt über eine sichere Verbindung an Let’s Encrypt  gesendet und von ZeroSSL nicht gespeichert. Alle eingegebenen Informationen sowie auch die erstellten Zertifikate und Schlüssel sind nur im Browser verfügbar. Die Erstellung der SSL-Zertifikate findet in drei sehr einfachen Schritten statt. Sollten verschiedene Schlüssel nicht vorhanden sein, werden diese während der Erstellung ebenfalls generiert. So können der Certificate Signing Request (CSR) für die entsprechenden Domains sowie der Let’s Encrypt-Schlüssel automatisch erstellt und in Zukunft bei einer Verlängerung des Zertifikats eingegeben werden.

Im ersten Schritt müssen die grundlegenden Informationen zur Erstellung des SSL-Zertifikats und zur Kommunikation mit Let’s Encrypt eingegeben werden. Durch die Eingabe einer E-Mail-Adresse haben Sie in Zukunft die Möglichkeit Benachrichtigungen zum Ablauf der Gültigkeit zu bekommen. Auch zur Erstellung und Wiederherstellung des Let’s Encrypt Schlüssels kann die E-Mail-Adresse verwendet werden. Wird direkt der Let’s Encrypt Schlüssel verwendet, so wird die E-Mail-Adresse ignoriert. Die erzeugten Schlüssel sind sicher aufzubewahren da diese für eine Verlängerung des SSL-Zertifikats benötigt werden. Nun können Sie noch die Verifizierungsmethode auswählen. Sie haben dabei die Möglichkeit die Verifizierung über HTTP oder DNS vorzunehmen. Die HTTP-Verifizierung kann zeitnah und mit den meisten WebHosting-Paketen durchgeführt werden. Die DNS-Verifizierung ist je nach Hosting-Paket ebenfalls möglich, jedoch kann diese je nach Aktualisierung der DNS-Einträge etwas länger dauern. Im verbleibenden Feld können die Domains angegeben werden, für welche das SSL-Zertifikat erstellt werden soll. Im Moment unterstützt Let’s Encrypt keine Wildcard-Zertifikate. Da jedoch beliebig viele Domains angegeben werden können, kann eine Auwahl aus verschiedenen (Sub-)Domains verwendet werden um ein Zertifikat für diese zu erstellen. Sollte für die Domains kein CSR vorhanden sein, so können die Domains, getrennt durch Leerzeichen oder Kommas angegeben werden. Sollte bereits ein CSR vorhanden sein, kann dieser eingefügt werden, so dass aus diesem die Domains ausgelesen werden. Nach akzeptieren der TOS von ZeroSSL und den Subscriber Agreements von Let’s Encrypt kann man mit dem nächsten Schritt fortfahren.

Im nächsten Schritt muss die Verifizierung vorbereitet werden. Im Falle der HTTP-Verifizierung müssen Dateien auf dem Webspace erstellt werden um die Inhaberschaft bzw. die Kontrolle über die Domain zu bestätigen. Dadurch habe Dritte, welche keinen Zugriff auf den Webspace haben, auch keine Möglichkeit für diese Domains ein SSL-Zertifikat zu erstellen. Die Dateien müssen dabei in einem Verzeichnis mit dem Namen „.well-known/acme-challenge“ im entsprechenden root-Verzeichnis der Domain erstellt werden. In der ersten Zeile befindet sich der Name der Datei welche für die entsprechende Domain erstellt werden muss. In der zweiten Zeile befindet sich dann der Inhalt der Datei. Let’s Encrypt ruft dabei diese Dateien dieser Domains auf und prüft deren Inhalt um so die Domain und Inhaberschaft zu überprüfen. In der ersten Zeile findet man auch einen Link um zu prüfen ob die Datei am richtigen Ort erreichbar ist. Die Verifizierung muss nach einiger Zeit wiederholt werden. Sollte zur Verlängerung des SSL-Zertifikats der Dienst von ZeroSSL verwendet werden, so gelangt man direkt nach der Eingabe des Let’s Encrypt-Schlüssels und der CSR auf den letzten Schritt mit dem neuen SSL-Zertifikat.

Im letzten Schritt werden die Schlüssel und Zertifikate von Let’s Encrypt erstellt und in den entsprechenden Bereichen dargestellt. Das erstellte SSL-Zertifikat ist nun 90 Tage gültig und kann dann immer wieder über ZeroSSL erneuert werden. In dem erstellten Zertifikat befinden sich zwei Zertifikate. Ein Zertifikat welches die Domain zertifiziert, das andere zertifiziert den Aussteller (also Let’s Encrypt). Bei einigen Anbietern kann dieses Zertifikat komplett mitgeteilt werden. Bei anderen Anbietern muss dieses jedoch getrennt werden. Bei Host Europe kann dieses Zertifikat komplett sowie auch getrennt hochgeladen werden. Für das Aussteller-Zertifikat gibt es einen eigenen Upload. Auf dem letzten Schritt auf welchem das fertige SSL-Zertifikat zu sehen ist, sollte auch eine Account-ID angezeigt werden. Diese sollte ebenfalls notiert werden, da diese in Zukunft zur Verlängerung oder bei Problemen zur Identifikation des Let’s Encrypt Accounts verwendet werden kann. An sich empfiehlt es sich alle erstellten Schlüssel und Zertifikate sowie Informationen sicher zu speichern um auch in Zukunft keine Probleme bei der Erstellung oder Verlängerung von SSL-Zertifikaten zu haben.

Nachfolgend nochmal eine Slideshow mit allen Schritten um ein SSL-Zertifikat über ZeroSSL zu erstellen:

Zur Erstellung eines SSL-Zertifikats über ZeroSSL sollte nicht der Internet Explorer oder Safari-Browser verwendet werden, da es dort zu Kompatibilitätsproblemen kommen kann. Es empfiehlt sich daher den Mozilla Firefox oder Google Chrome zu verwenden. Ich selbst habe zwei SSL-Zertifikate erstellt und dabei Google Chrome verwendet, was wunderbar funktioniert hatte.

Um den Besuchern die Verwendung einer Extension wie „HTTPS Everywhere“ abzunehmen, kann die .htaccess-Datei erweitert werden um alle HTTP-Anfragen auf die nun verschlüsselte HTTPS-Verbindung umzuleiten. Hierfür kann der folgende Code an das Ende der .htaccess-Datei eingefügt werden (die Zeile RewriteEngine On  ist optional falls diese noch nicht vorhanden ist):

SSL-Zertifikat bei Host Europe einbinden

In allen WebHosting-Produkten von Host Europe sollte das Einbinden eigener SSL-Zertifikate möglich sein. Die Einbindung der SSL-Zertifikate habe ich im WebHosting-Produkt „Premium“ vorgenommen. Nachdem man sich bei Host Europe im Kunden-Informations-System angemeldet und über „WebHosting“ das Produkt ausgewählt hat, für welches die SSL-Zertifikate konfiguriert werden sollen, kann über das Menü „Sicherheit & SSL“ – „SSL administrieren“ die Verwaltung der SSL-Zertifikate aufgerufen werden. Es wird eine Liste mit allen Domains geöffnet für welche ein SSL-Zertifikat angegeben werden kann. Wird das erste SSL-Zertifikat hochgeladen und eingebunden, wird dieses auch gleichzeitig als globales SSL-Zertifikat und somit vorerst für alle Domains verwendet. Sie haben später dann die Möglichkeit für andere Domains das globale SSL-Zertifikat durch ein neues SSL-Zertifikat zu ersetzen. Das Entfernen eines SSL-Zertifikats für eine Domain ist nur möglich wenn bereits das gloable SSL-Zertifikat überschrieben wurde. Beim Upload eines Zertifikats muss in der ersten Zeile das Zertifikat ausgewählt werden. In der zweiten Zeile muss der Domain-Schlüssel angegeben werden. Es ist darauf zu achten den Domain-Schlüssel und nicht den Let’s Encrypt-Schlüssel, welcher im ersten Schritt erstellt wurde, zu verwenden. In der dritten Zeile muss nichts eingegeben werden außer der Domain-Schlüssel ist durch ein Passwort gesichert. In der letzten Zeile kann dann noch das Aussteller-Zertifikat angegeben werden. Dies ist jedoch nicht unbedingt nötig da dieses auch direkt im Domain-Zertifikat mit angegeben werden kann. ZeroSSL stellt bereits das Domain- und Aussteller-Zertifikat in einer Datei zur Verfügung welche in dieser Form direkt verwendet werden kann. Nachdem die Zertifikate angegeben wurden, können die Einstellungen gespeichert werden. Trotz dem Hinweis dass es bis zu 48 Stunden dauern kann, war das Zertifikat direkt auf der Domain verfügbar. In der nachfolgenden Slideshow sind nochmal alle Schritte, welche zur Einbindung eines SSL-Zertifikats bei Host Europe benötigt werden, zu sehen:

Die Einbindung eines SSL-Zertifikats für eine Domain schafft jedoch nicht direkt eine sichere Verbindung. Der Browser zeigt nur eine sichere Verbindung an, wenn alle Ressourcen, welche auf der Seite verwendet werden, ebenfalls über eine HTTPS-Verbindung abgerufen werden.

Update: Die Verlängerung von SSL-Zertifikaten habe ich in diesem Artikel erklärt: „Host Europe – SSL-Zertifikate von Let’s Encrypt verlängern„. Die Verlängerung von SSL-Zertifikaten unterscheidet sich nur minimal zur Erstellung des Zertifikats.

sebastianbrosch

Ich bin gelernter Fachinformatiker und konnte Erfahrungen in HTML, CSS, JavaScript, jQuery, PHP sowie VB.NET sammeln. In diesem Blog schreibe ich über meine Probleme und Erfahrungen sowie Aritkel aus dem Gebiet der Anwendungsentwicklung.

Das könnte Dich auch interessieren...

20 Antworten

  1. Reinhard sagt:

    Super Tutorial, vielen Dank! Hat mir sehr geholfen, meine Seiten auf https umzustellen. Eine Zusatzfrage dazu: Die Verlängerung bei ZeroSSL ist mir einigermaßen klar, aber wie funktioniert die Verlängerung der Zertifikate auf Seiten von HostEurope? Würde mich über eine kurze Rückmeldung dazu sehr freuen, danke!

    • Hallo Reinhard, schön dass ich helfen konnte. Ich selbst hatte noch keine Verlängerung aber das Ersetzen des alten Zertifikats sollte funktionieren. In der ersten Mai-Woche muss ich meine Zertifikate wieder verlängern und werde die Erfahrungen hier nochmal an den Artikel anhängen. Automatisch funktioniert dass für WebHosting-Pakete leider nicht.

    • Reinhard sagt:

      Danke für die schnelle Antwort. Ich frage mich, ob es mit einem Verlängern des Zertifikates an sich getan ist: Sprich, wird das vorhandene Zertifikat einfach mit einem neuen Gültigkeitsdatum hinterlegt oder wird ein komplett neues Zertifikat ausgestellt, welches im KIS das Alte ersetzt. Ich freue mich sehr, wenn du deine Erfahrungen an den Artikel anhängst. Liebe Grüße aus Tirol!

    • Es wird bei einer Verlängerung ein neues Zertifikat erstellt, welches auch einen neuen Gültigkeitszeitraum hat (wieder 3 Monate). Dieses wird dann im KIS eingebunden und ersetzt das bisherige Zertifikat. Details werde ich auf jeden Fall diesem Artikel anhängen. Grüße aus dem Schwarzwald.

    • Reinhard sagt:

      Hallo Sebastian, gibt es schon was Neues in Bezug auf Verlängerung der Zertifikate?

    • Hallo Reinhard, ja ich habe bereits die Verlängerung meiner SSL-Zertifikate vorgenommen. Grundlegend ist es das Gleiche wie bei der Einrichtung. Ich habe einen kleinen Artikel dazu bereits verfasst: https://sebastianbrosch.blog/2017/host-europe-ssl-zertifikate-von-lets-encrypt-verlaengern/. Sollten noch Fragen offen bleiben, einfach melden.

    • Reinhard sagt:

      Sorry, ich hab nur für diesen Blog ein Lesezeichen gesetzt – jetzt erst habe ich deine Blog-Übersicht entdeckt (einfach ganz oben auf sebastianbrosch klicken… wie dumm man manchmal ist… 😉

      Danke!

  2. Wolf sagt:

    Erstmal vielen Dank. Ihr Tutorial hat mich einige Schritte weiter gebracht. Ich hänge jetzt allerdings bei der Verifikation fest. Auf der root-Ebene habe ich ein .well-known Verzeichnis angelegt. Darin /acme-challenge. Dort eingefügt habe eine Text-Datei: in der ersten Zeile den Domainnamen, in der zweiten den Inhalt, der mir auf der zero ssl Seite angezeigt wird – so habe ich mir das zusammengereimt. Der Link führt zu einer error Nachricht und wenn ich trotzdem auf weiter gehe, bekomme die Meldung: Unerwarteter Fehler[Code 400] Status: unable to update challenge :: response does not complete challenge. Habe Sie eine Idee dazu?

    • Hallo Wolf, es muss in diesem Verzeichnis eine Datei mit dem Namen aus der zweiten Spalte (mit der Überschrift „Datei“) erstellt werden. In der ersten Spalte befindet sich die Domain für welche diese Datei erstellt werden muss. In der zweiten Zeile, welche mit „Inhalt“ beginnt, befindet sich der Inhalt welcher in dieser Datei gespeichert werden muss. Wenn die Datei anschließend über den Browser erreichbar ist, kann diese auch von der Website zur Verifizierung aufgerufen werden. Es sollte auch ein Link vorhanden sein, um die Datei im Browser zu öffnen.

  3. Wolf sagt:

    Vielen Dank für die schnelle detaillierte Antwort.

  4. Sebastian sagt:

    Ich habe ein paar kleine Skripte geschrieben, um Let’s Encrypt Zertifikate für mein Hosteurope WebHosting Paket zu erstellen oder zu erneuern. Dabei nutze ich keinen Drittdienst, sondern generiere die Zertifikate lokal. Details zum Vorgehen plus die Skripte findest du hier: https://sebstein.hpfsc.de/2017/09/17/lets-encrypt-mit-hosteurope-webhosting-nutzen/

    Ich konnte den Aufwand soweit minimieren, dass ich jetzt nur noch aller 90 Tage das neue Zertifikat im KIS einbinden muss.

    • Eine ähnliche Idee hatte ich auch schon bereits, allerdings auf Basis von PHP. Ein solches Script kann einem viel Zeit sparen. Der Vorteil von PHP wäre dies komplett automatisiert zu erstellen und per E-Mail zu senden oder per FTP zur Verfügung zu stellen (mit Python geht dass sicherlich auch). Ich danke dir für’s teilen der Scripte.

  5. Konstantin sagt:

    Danke fürs teilen, hat sehr geholfen!

  6. Martin sagt:

    Hallo Sebastian, ich hänge beim einbinden des Zertifikates am DomainKey fest. HostEurope akzeptiert mit der folgenden Meldung (Der Privatekey passt nicht zu diesem Zertifikat) die beiden hochgeladenen Dateien nicht. An welcher Stelle beim erstellen via ZeroSSL ist der DomainKey auffindbar? Die beiden hochgeladenen Dateien heißen bei mir „domain-crt.txt“ und „account-key.txt“ – In deiner Slideshow oben sieht es aus als wären diese umbenannt vor dem Upload. Habe ich was überlesen in deiner Beschreibung?

    • Hallo Martin, den Domain-Key / Domain-Schlüssel findest du bei ZeroSSL auf der Seite „Ihr Zertifikat“ ist bereit!“ in der unteren Textbox. Auf der rechten Seite befindet sich auch nochmal eine Beschreibung. Bei Host Europe dann im ersten Feld das Zertifikat auswählen und im zweiten Feld den Domain-Schlüssel auswählen. Die Benennung in den Bildern ist von mir frei gewählt und entspricht nicht dem Standard. Auch darauf achten dass du nicht ausversehen den Let’s Encrypt Account-Key auswählst.

  7. Martin sagt:

    Danke für deine schnelle Antwort, ich habe das Prozedere mittlerweile wiederholt und da war dann auch die zweite Textbox. Hab alle Dateien je Projekt (4 Webseiten) gespeichert und die Verifikation über den „.well-known/acme-challenge“ Ordner im Root des Webspace hat auch geklappt. Jedoch zeigte mir Host Europe nach dem Upload der Dateien „domain-crt.txt & domain-key.txt“ folgende Fehlermeldungen:

    -Kein gültiger Key
    -Kein gültiges Zertifikat
    -Der Privatekey passt nicht zu diesem Zertifikat und anschließend – Ungültiger Modus

    Bei einem anderen Projekt:
    -Kein gültiger Key
    -Der Privatekey passt nicht zu diesem Zertifikat
    Zumindest das Zertifikat scheint hier zu passen, weil diese Fehlermeldung nicht erscheint.
    Ich mache wohl grundlegend etwas falsch und komme nicht drauf woran es liegen könnte.

    Es sind definitiv die beiden Dateien die es am Ende in den beiden Fenstern zum Download gab.

  1. 2017-11-01

    […] auf seinem Webserver ebenfalls entsprechende Zertifikate installieren möchte, der findet in diesem Blogpost von Sebastian Brosch ein tolles und detailliertes HowTo. Dabei ist es auch nicht wirklich […]

Schreibe einen Kommentar

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