Hosteurope – SSL-Zertifikate von LetsEncrypt automatisch verlängern und einrichten

Veröffentlicht von

Hosteurope unterstützt leider immer noch kein LetsEncrypt. Man kann zwar die SSL-Zertifikate von LetsEncrypt bei Hosteurope nutzen, muss aber ein vergleichsweise unpraktisches Verfahren anwenden um diese zu nutzen. Ich hatte die Vorgehensweise bereits hier im Blog beschrieben.

Je nach Anzahl der Domains artet da in jede Menge Arbeit aus. Diese muss zudem alle 3 Monate wiederholt werden. Meine Hoffnung ist, dass Hosteurope irgendwann direkt in der Admin-Oberfläche Unterstützung für LetsEncrypt bietet. Andere Webhoster wie Uberspace oder Serverprofis bieten dies bereits. Aber ich bin mit Hosteurope sonst in allen Belangen zufrieden und ein Wechsel von derzeit über 10 Webseiten ist auch nicht mal eben getan.

Glücklicherweise wurde Emile Schenk von donauweb.at auf meinen Artikel aufmerksam und er hat ein Script gebastelt, mit welchem man den ganzen Prozess auch bei Hosteurope automatisieren kann. Das sehr pfiffige Script automatisiert die Erstellung und Einbindung der Zertifikate bei Hosteurope. Zudem hat er mir erlaubt das Script hier vorzustellen und auch zum Download anzubieten.

Das Script selbst basiert auf CertLE, einem LetsEncrypt-Client auf Basis von PHP. Der Aufruf erfolgt direkt in der Shell. D.h. ein SSH-Zugang bei Hosteurope ist Pflicht. Bevor man sich nun an die Automatisierung macht, sollte man das im ersten Blogartikel gezeigte manuelle Verfahren einmal von Hand durchmachen, damit man die beiden benötigten Dateien account_key.pem und domain_key.pem erhält.

Das Script gibt es hier zum Download.

Schauen wir uns im ersten Schritt die Dateien an:

Die markierten Dateien müssen vor der Nutzung angepasst werden. In die .kis-Datei müssen die Zugangsdaten für den KIS-Zugang von Hosteurope eintragen werden. In der Datei certificate_upload.php muss das $homedir angepasst werden:

$homedir = '/is/htdocs/wp999999_ZZZZZZZZZ';

Hier trägt man einfach den kompletten Pfad zum Script ein. Mittels dem Linux-Befehl pwd kann man in der Konsole den Pfad schnell ermitteln:

wp@vwp1108:~/le$ pwd
/is/htdocs/wp999999_ZZZZZZZZZ/le

Nun kommt die Anpassung der myletsencrypt.sh Datei:

/usr/bin/env php7.0 CertLE.php cert account_key.pem domain_key.pem \
    -w /is/htdocs/wp999999_ZZZZZZZZ/www/DOMAIN1/ \
    -d www.domain1.com \
    -w /is/htdocs/wp999999_ZZZZZZZZ/www/DOMAIN2/ \
    -d www.domain2.com \
    --csr csr.pem \
    --cert cert.pem \
    --chain chain.pem \
    --fullchain fullchain.pem

Angepasst werden müssen die Zeilen für jede Domain und Subdomain:

    -w /is/htdocs/wp999999_ZZZZZZZZ/www/DOMAIN1/ \
    -d www.domain1.com \
    -w /is/htdocs/wp999999_ZZZZZZZZ/www/DOMAIN2/ \
    -d www.domain2.com \

Wie man sieht, gibt man hier den absoluten Pfad auf dem Webspace an, zusätzlich mit der Domain. Da www.domain1.com und domain1.com technisch gesehen zwei Domains sind, sollte man beide Schreibweisen angeben:

    -w /is/htdocs/wp999999_ZZZZZZZZ/www/DOMAIN1/ \
    -d domain1.com \
    -d www.domain1.com \

Je nach Anzahl der Domains und Subdomains wird die Liste recht lang. Hat man alle Anpassungen vorgenommen, wird das Script zusammen mit den Dateien account_key.pem und domain_key.pem auf den Webspace geladen.

Die beiden Dateien myletsencrypt.sh und upload.sh müssen zudem noch ausführbar gemacht werden. Hierfür genügt es via FTP die Rechte 777 zu vergeben.

Bei unserem ersten manuelle Erstellen der Zertifikate haben wir bereits die Verzeichnisse .well-known/acme-challenge angelegt. Sofern dies mittels FTP erfolgt ist, muss hier noch der Besitzer des Ordners abgeändert werden. Dies geht am Besten über die Dateiverwaltung in KIS:

Hat der Ordner den Besitzer ftpXXXXX, dann den Ordner markieren, die Besitzer und Gruppe auf wpXXXXX abändern. Das Ganze rekursiv. Andernsfalls kann das Script die Challenge-Dateien nicht abspeichern und es kommt zu einer Fehlermeldung.

Wie man sieht, ist auch dieser Weg zur Automatisierung steinig und erstmal Arbeit. Ist der Prozess abgeschlossen, können wir jetzt jedoch über SSH die Erneuerung der SSL-Zertifikate anstoßen:

./myletsencrypt.sh

Bei der Ausgabe sollte man auf Fehlermeldungen achten. Bei mir gab es ein paar Probleme mit den Berechtigungen. Denen sollte man nachgehen, wenn eine Datei nicht geschrieben werden konnte. Das Script legt die Challenge-Dateien von LetsEncrypt ab und löscht diese am Ende wieder. Hier kam es zu Warnungen, dass Verzeichnisse nicht entfernt werden konnten. Diese Warnungen kann man ignorieren.

Klappt alles, erfolgt die Ausgabe, dass das Zertifikat nun angelegt worden ist.

Das Zertifikat wird nun abgelegt:

  Saved Fullchain to: fullchain.pem
Saved Certificate to: cert.pem
      Saved Chain to: chain.pem
        Savee CSR to: csr.pem

Wer mag, kann die Dateien herunterladen und bei Hosteurope im KIS hochladen. Alternativ kann man den Befehl:

./upload.sh

Ausführen. Dieser erledigt den Upload, sofern man die korrekten Zugangsdaten in die .kis abgelegt hat.

Beim manuellen Upload verwendet man die fullchain.pem als Zertifikat und domain_key.pem als Key-Datei. Anschließend überprüft man im Browser, ob das Zertifikat korrekt übernommen worden ist. Dies kann ein paar Minuten dauern.

Beim Erneuten verlängern, müssen nun nur noch alle paar Monate die Befehle für die Generierung und dem Upload ausgeführt werden.

Update

Kommt beim Ausführen der Scripte eine Fehlermeldung:

file_get_contents(http://www.domain.de/.well-known/acme-challenge/59fee33f9fd03): 
failed to open stream: php_network_getaddresses: getaddrinfo failed: 
Name or service not known

Sollte man die Script-Einstellungen im KIS überprüfen. Hier kann ggf. eine Einstellung verhindern, dass PHP auf externe URLs zugreifen kann:

61 Kommentare

  1. Genial – Gerade deinen Artikel gefunden und werde es testen und dann gerne benutzen – Vielen Dank an dich Andy und auch an Emile Schenk.

    Dennoch hoffe ich das Hosteurope bald merkt, dass es keine Sinn macht Let’s Encrypt im Komfort außen vor zu lassen.

  2. Super, hab gerade den Artikel quergelesen. Das ist, was ich die ganze zeit gesucht hab!
    Mein WebPack bei Hosteurope ist allerdings so alt bzw. klein, das SSH nicht angeboten wird.
    Ich hab an die alte PHPShell gedacht. Die läuft bei mir, wenn ich die Ordner frei gebe, noch.

    Frage: Geht das mit der PHPShell auch? Sollte doch, oder?

  3. Wie gehe ich vor, wenn ich nicht EIN Zertifikat erstellt habe, welches ALLE Domains beinhaltet, sondern für jeden Domain EIN SEPARATES Zertifikat erstellt habe?

    Bzw. kommen bei mir regelmäßig neue Domains dazu. Da müsste ich ja – wenn ich das richtig verstanden habe – sowieso jedes Mal händisch ein neues Zertifikat ausstellen lassen, oder?

    Edit: Jetzt hab ich’s verstanden! Die beiden Keyfiles werden quasi nur initial erstellt. Danach können alle Domains mit diesen beiden Keyfiles verwaltet werden, das Ergebnis sind somit nicht je ein Zertifikat pro Domain sondern ein GLOBALES Zertifikat für alle definierten Domains, welches jedoch nachträglich problemlos erweitert werden kann. Sehr geil! 🙂

  4. Ich habe den Prozess bis auf den Upload per Script fast durch. Leider spuckt mir die Konsole derzeit ein unschönes “550: Sender must exist (ec:13)” entgegen. Die Meldung kommt nach folgenden Anzeigen:

    string(35) “https://kis.hosteurope.de/?…”
    string(35) “https://kis.hosteurope.de/i…”
    string(61) “https://kis.hosteurope.de/a…”

    Dann der Fehler. Ich vermute, es geht um die angegebene E-Mail-Adresse. Diese entspricht in der .kis-Datei jedoch der, die im KIS in den Kontaktdaten angegeben wurde. Oder bezieht sich das auf die Account-Nummer? Hier sind die Kommentare in den Dateien nicht eindeutig. In der .kis steht Nummer des Webpacks, das ist die des Produkt, zu dem der Webserver gehört. In der Datei certificate_upload.php steht “NUMMER VON HOSTEUROPE ACCOUNT”. Das ist nach meiner Interpretation die Nummer des Kundenkontos, also eine andere. Welche gehört denn da rein?

    UPDATE: Es ist die Nummer des Produkts, nicht die Kundennummer. Problem war, dass im KIS unter Skripte & Datenbanken\Skript-Einstellungen keine über Webserver\E-Mail hinterlegte Adresse ausgewählt war. Diese muss angegeben werden.

  5. Leider bekomme ich den “failed to open stream” Fehler, “PHP-allow_url_fopen” und “PHP-allow_url_include” sind aber beide “On”. Hat einer ne Idee woran es noch liegen könnte? Benutzer und Gruppe stehen auch auf “wp…” womit ich mich auch per SSH einlogge.

    Gruß,
    Thomas

    1. Schau Dir mal die Sache unter Update an, bei HE kann man diverse Sicherheitsdinge im KIS einstellen. Das wäre noch mein Tipp, ansonsten keine Ahnung. Der Support von HE ist aber recht fix, ggf. dort anfragen. Viel Erfolg, Andy

    2. Ich habe das selbe Problem. Auf Nachfrage sagt mir der HE-Support, dass bei Webhosting-Tarifen einige PHP Erweiterungen fehlen, um CertLE nutzen zu können, z.B. OpenSSL. Laut “phpinfo” und “php7 -m” stimmt das aber nicht.

      1. Antwort von HostEurope Support:

        Für den Ausstellungsprozess muss das Skript eine ausgehende Verbindung zu den Let’s Encrypt Servern aufbauen. Dieser ausgehende Verbindungsaufbau ist in unseren WebHosting Tarifen per SSH, auch aus einem Skript heraus, nicht möglich.

  6. Hi Andy,

    vielen Dank für das Tutorial! Ich bekomme die Fehlermeldung »Failed to verify challenge after 10 tries« nach Aufruf der `myletsencrypt.sh` … Hast du eine Idee, woran das liegen könnte? Habe das manuell generierte Zertifikat bei HE mal als Test hochgeladen, und das ging ohne Probleme.

    Danke im Voraus und viele Grüße
    Florian

    1. Nachtrag: Vielleicht liegt es daran, dass der Zeitraum zwischen manueller Generierung und der über den Server zu kurz war. Als Status bekomme ich von `$ret=$this->http_request($challenge[‘uri’])` »pending« zurück, und das scheint so lange der Fall zu sein, wie eine andere Challenge »valid« ist (https://community.letsencrypt.org/t/dns-validation-remains-in-pending-status/38681/2). Dann werde ich es in 60 Tagen noch mal probieren 🙂

      1. Auch möglich, spontan hätte ich drauf getippt, dass die .well-known Dateien nicht zugreifbar waren. Ich hatte mal so ein Problem in Verbindung mit .htaccess und Passwortschutz. Aber da kam auch eine andere Meldung.

        Es gibt zumindest auch Rate-Limits: https://letsencrypt.org/docs/rate-limits/

        60 Tage klingt mir etwas lang. Vielleicht kommende Woche nochmal testen.

        1. Hi Andy,

          danke für deine Antwort! Ja, die .well-known-Rechte habe ich denke ich richtig gesetzt, auf den Nutzer mit »wp« vorne.

          Das Rate-Limit dürfte ich eigentlich nicht erreicht haben.

          Auf die 60 Tage bin ich über die ZeroSSL-FAQ gekommen (»The verification results are valid, at the time of writing, for 60 days«), das klingt mir nach dem Zeitraum. Aber ja, vielleicht teste ich es einfach nächste Woche schon noch einmal.

          Viele Grüße

  7. Wow, ich bin sprachlos.
    Dieser Beitrag war wirklich hilfreich. Du hast mir wirklich hunderte Euros gespart (22 Websites) 🙂

    Pro Tipp: Bei mir wollte es nicht mit der domain_key.pem klappen. Warum auch immer.
    openssl genrsa -out privateKey.pem 2048 hat mir weitergeholfen.

    Ganz liebe Grüße vom Niederrhein!

    1. Ok jetzt muss ich doch noch einmal nachtragen:
      Das Script arbeitet ordnungsgemäß nur komischerweise legt es über den Befehl ./upload.sh nur ein Globales Zertifikat an und keines für die vorher definierten Domains. Mache ich etwas falsch?

      Gruß und Danke!

      1. Ich bin scheinbar etwas verpeilt.
        Also, 8 Domains – die erste wird als Antragssteller auf allen Seiten im Zertifikat angezeigt. Ok.
        Das Zertifikat wird als Globales Zertifikat gesetzt und ist auf allen Seiten autom gültig. Ok.

        Problem: Wenn man ein oder mehrere Zertifikate von HE nutzt werden diese dadurch außer Gefecht gesetzt. Bspw. mein Wildcard-SSL-Zertifikat, welches auf Global bleiben MUSS, damit die 100 Subdomains von Domain1.de ordnungsgemäß verschlüsselt sind.

        Das heißt für mich jetzt, dass das Script ungeeignet ist. Oder gibt es einen Trick?

        Danke schonmal!

        1. Hallo,

          ja das Script erzeugt ein globales Zertifikat. Du kannst natürlich auch für jede Domain ein extra “myletsencrypt.sh” Script anlegen und ausführen. Dann generiert das ein Zertifikat nur für die Domain. Beim Upload, müsste es dann auch ein Upload-Script für jedes Zertifikat geben. Hier ist momentan das globale Zertifikat als Formularziel beim Upload definiert:

          $post[2] = array(
          “v_id”=>”0”,
          “menu”=>”6”,
          “mode”=>”sslupload”,
          “wp_id”=>$accountnummer,
          “submode”=>”sslfileupload”,
          );

          Der Schlüssel scheint hier die v_id zu sein. Wenn Du im KIS ein Zertifikat für eine Domain hochladen willst, dann taucht der Paramter in der URL auf, z.B. &v_id=717736. In jedem Script müsste dann denke nur die v_id für die Domain gesetzt werden. Habs aber noch nicht selbst ausprobiert.

          mfg
          Andy

          1. Großartig! Wirklich klasse, es hat funktioniert.
            Nun bekommt jede Domain separat ihr Zertifikat. Läuft einwandfrei.
            Nochmal tausend Dank. Wirklich, das spart mir einige Euro…!

  8. hi, teste auch gerade diese Lösung umzusetzen, das für jede Domain ein eigenes Zertifikat hichgeladen wird.
    Wenn ich das richtig verstanden habe muss ich doch nur pro Domain die myletsencrypt.sh (pfad und pem-dateien) und certificate_upload.php (die v_ID) anpassen und dann jeweils unter anderem Namen abspeichern – oder? Also zum Beispiel myletsencrypt_domain1.sh und certificate_upload_domain1.php usw.
    Und die account_key.pem und domain_csr.pem auch jeweils für die verschieden Domains anderes benennen.
    Also z.B. account_key_domain1.pem usw.

    Hier mal mein Beispiel für die myletsencrypt_domain1:
    #!/bin/sh
    /usr/bin/env php7.0 CertLE.php cert account_key_domain1.pem domain_csr_domain1.pem \
    -w /is/htdocs/wpxxxxxxx_xxxxxxx/www/domain1/ \
    -d http://www.domain1 \
    -d domain1 \
    –csr csr.pem \
    –cert cert.pem \
    –chain chain.pem \
    –fullchain fullchain.pem

    Und das dann für jede Domain, sollte das so gehen?

      1. Danke – Soweit so gut, hab auf dem weg zur fertigen Lösung auch mit Berechtigungsprobleme gekämpft.
        Jetzt habe ich noch einen Fehler, denn ich noch nicht gelöst bekomme.
        Und zwar:
        Generating Certificate Signing Request (CSR)…Error: Could not load domain key: domain_key_domain1.pem
        error:0906D06C:PEM routines:PEM_read_bio:no start line

        Was mache ich falsch 🙁

        1. Spontan würde ich sagen, das mit Deiner Domain-Key was nicht stimmt. Eventuell mit irgendwas überschrieben?

          Die sollte so beginnen:
          —–BEGIN RSA PRIVATE KEY—–
          MIIJKQIBAAKCAgEAzvSEkqK9cF0tq3a0Lb/

          Ansonsten kann ich dazu nicht soviel zu sagen. Vielleicht hat noch jemand anderes eine Idee.

          mfg
          Andy

          1. Fehler gefunden..ich hatte die domain-csr.txt datei (Schlüsselanfoderungsdatei) genommen und umbennat, wie in deinen Video ganz am anfang erklärt. Es musste aber die domain-crt.txt Datei (Zertifikat) sein. Ist da eventl ein Fehler in deinem Video oder hab ich ein Brett vorm Kopf.

            Den erstellung klappt, aber jetzt will der scriptbasierte upload nicht. Der hört ohne Fehlermeldung einfach auf! Eigentlich kann da doch garnicht viel schief gehen. Habe das homedir geändert und dann die v_id (zeile 25) für die Domain eingetragen. v_id mehrfach überprüft. die ist richtig

            So sieht die ausgabe aus:
            xxxxx@xxxxx.server-he.de:~/lets_encrypt$ ./upload.sh
            string(35) “https://kis.hosteurope.de/?logout=1”
            string(35) “https://kis.hosteurope.de/index.php”
            Willkommen in Ihrem Kunden-Informations-System (KIS)
            string(61) “https://kis.hosteurope.de/administration/webhosting/admin.php”
            xxxxx@xxxxx.server-he.de:~/lets_encrypt$

            Eventuell kann der Micha mal seine certificate_upload.php zeigen oder auch seine ganze Lösung zeigen 🙂

          2. Wie sieht die folgende Zeile(n) bei Dir aus?

            $post[2] = array(
            “v_id”=>”0”,
            “menu”=>”6”,
            “mode”=>”sslupload”,
            “wp_id”=>$accountnummer,
            “submode”=>”sslfileupload”,
            );

            Er bricht ja anscheinend genau an der Stelle ab. Vielleicht ein Syntaxfehler?

  9. Nabend Andy,

    danke dir erstmal für die super Anleitung.

    Ich bekomme im Moment zwei CronJobs-Fehler:
    Could not open input file: CertLE.php
    Could not open input file: certificate_upload.php

    PHP-URL-open sind beide auf On.
    Dateirechte auf 777

    Kannst du da einen Tipp geben?

    Danke, LG Konstantin

  10. Danke für die Rückmeldung.
    Kannst du mir bitte sagen, wie ich in so eine Konsole komme?
    Anbieter ist Hosteurope, WebServer Basic mit Cronjob, mit SSL und SSH.

    Danke im Voraus.

    1. Hi Andy,

      danke dir, es läuft jetzt alles. Nur noch den Cronjob einrichten und das wars. Lieben Dank!

      ftpXXX@vwpXXX:~/www/XXXX/ssl_auto$ ./myletsencrypt.sh
      Simulating challenges:
      Testing: http://www.XXX.de…OK
      Validating domains:
      Validating: http://www.XXX.de…OK [XXXXXX]
      Generating Certificate Signing Request (CSR)…OK
      Requesting Certificate…OK
      Requesting Intermediate CA Certificate…OK

      Saved Fullchain to: fullchain.pem
      Saved Certificate to: cert.pem
      Saved Chain to: chain.pem
      Saved CSR to: csr.pem

      commonName: http://www.XXX.de
      issuer: Let’s Encrypt Authority X3
      serialNumber: XXXXXXXXXXXXXXXXXXXXXXXXX
      validFrom: Sun, 18 Feb 2018 13:57:22 +0100
      validTo: Sat, 19 May 2018 14:57:22 +0200
      string(35) “https://kis.hosteurope.de/?logout=1”
      string(35) “https://kis.hosteurope.de/index.php”
      Willkommen in Ihrem Kunden-Informations-System (KIS)
      string(61) “https://kis.hosteurope.de/administration/webhosting/admin.php”
      Die Dateien wurden erfolgreich hochgeladen
      ftpXXXXXX@vwpXXXX:~/www/XXX/ssl_auto$

  11. Sehe ich das richtig, dass bei 100 Domains Schluss ist mit dem globalen Zertifikat? Ich bräucht vermutlich mindestens nochmal so viel…

    Ich hab bei den Kommentaren was gelesen, dass es auch möglich wäre, pro Domain ein separates Zertifikat zu erzeugen. Gibt es hierfür auch schon eine fertige Lösung, die hier mitgeteilt werden könnte?

    Vielen Dank!

      1. Genau, für jede Domain ein Script und einmal diese Dateien. Bei 100 Domains würde ich für jede Domain einen extra Ordner mit den Scripten und Dateien anlegen. Da kommt dann weniger durcheinander.

  12. Wenn ich zwei verschiedene Domains auf den gleichen Webspace zeigen lassen möchte, kann ich mit das Zertifikat in einem Schritt erstellen lassen. Das scheint aber nicht sauber zu funktionieren. Ich bekomme keine Meldung, dass der Upload klappt. Ich habe schon HostEurope dazu befragt, die aber das Problem auch nicht lösen konnten. Es kam nur der Hinweis, dass wir kein Webhosting, sondern einen Webserver einsetzen. Nach ein paar Versuchen verwies mich der Mitarbeiter dann wieder an den Scriptersteller.

  13. Ich habe das jetzt per Cronjob automatisiert:

    Job 1: Am 1. Tag jedes 2. Monats werden die Zertifikate aktualisiert (myletsencrypt.sh)
    Job 2: Am 2. Tag jedes 2. Monats werden die Zertifikate hochgeladen (upload.sh)

    Ich musste für den erfolgreichen Cronjob noch im myletsencrypt.sh sowie upload.sh am Beginn ein cd /is/<> einfügen, da ansonsten die “Could not open input file: CertLE.php / certificate_upload.php” Meldung kam..

    1. Das will ich mir demnächst mal anschauen. Wenn ich das richtig verstanden habe, benötigt man dafür aber DNS Authentifizierung. D.h. so automatisch wie hier, wirds vielleicht nicht werden.

  14. Hallo,
    ich habe folgendes Problem: Die Datei upload.sh lässt sich korrekt manuell ausführen. Wenn ich sie aber über einen Cronjob aufrufe bekomme ich zwar die Meldung, dass das Zertifikat bei Hosteurope installiert wurde, das passiert aber leider eben nicht.
    Hat jemand eine Ahnung, wie das zu lösen ist?

  15. Ich bin nicht ganz so firm. Nochmal für mich zum richtigen verstehen. Ich habe 3 Domains, davon ist eine von hosteurope laut Tarif schon direkt mit SSL Zertifikat versehen. Die anderen 2 Domains werden durch LetEncrypt-Zertifkate verschlüsselt. Für diese Domains benötige dieses Script. SSH ist eingerichtet. Ich müsste also, siehe oben beschrieben, dies so einrichten?

    domain1:
    #!/bin/sh
    /usr/bin/env php7.0 CertLE.php cert account_key_domain1.pem domain_csr_domain1.pem \
    -w /is/htdocs/wpxxxxxxx_xxxxxxx/www/domain1/ \
    -d http://www.domain1 \
    -d domain1 \
    –csr csr.pem \
    –cert cert.pem \
    –chain chain.pem \
    –fullchain fullchain.pem

    domain2:
    #!/bin/sh
    /usr/bin/env php7.0 CertLE.php cert account_key_domain2.pem domain_csr_domain2.pem \
    -w /is/htdocs/wpxxxxxxx_xxxxxxx/www/domain2/ \
    -d http://www.domain2 \
    -d domain2 \
    –csr csr.pem \
    –cert cert.pem \
    –chain chain.pem \
    –fullchain fullchain.pem

    In welche Datei schrieb ich dies rein? Und das sollte dann für jede Domain separat gehen? Und ich bräuchte dann auch 2 LetEncrypt-Zertifkate.

    Ich hoffe ich konnte jetzt mit meinen Worten einigermaßen erklären was ich will?

    Gruß Klaus

  16. Hi Andy,
    der erste Artikel hatte mir damals schon sehr weitergeholfen. Danke auch für den Zweiten.

    Ich hab es allerdings am Ende nicht hinbekommen. Bei mir stoppte es immer mit “Operation not permitted in …. ” obwohl ich alles auf den entsprechenden Nutzer gestellt hatte und am Ende sogar den ganzen Webseiten-Ordner auf 777 gesetzt hatte.

    Ich hab mehrere Domains einem Verzeichnis zu geordnet. Theoretisch habe ich sogar 3 Verzeichnisse mit jeweils einigen Domains.

    Vielleicht hat jemand noch einen Tipp.

    1. Werden die .well-known Verzeichnisse angelegt? Ich hatte auch Probleme, alles lag am Ende an den Berechtigungen. Im Zweifelsfall die Ordner erstmal von Hand anlegen und dem SSH-User als Besitzer mit den Rechten zuweisen.

      1. Ja die Verzeichnisse sind schon angelegt, da ich es seither immer von Hand erneuert haben. Ich muss mir das nochmal genau anschauen wenn ich mehr Zeit habe. Vielleicht gibt es dann ja auch ein “Magic”-Moment 🙂

  17. Hallo,

    habe soweit alles wie in der Anleitung angegeben erstellt.
    Beim Ausführen der myletsencrypt.ch über ssh erhalte ich die Fehlermeldung

    Error: Unknown Parameter:
    ./myletsencrypt.sh: line 10: –csr: command not found

    Ich habe allerdings eine Wildcard Domain mit DNS Authentifizierung über zerossl generiert.
    Kann ich da das Script überhaupt nutzen?

    Grüße

  18. Hallo Andy,

    da zerossl.com down ist, habe ich es mit sslforfree.com probiert. Die manuelle Erstellung hat auch geklappt und das Zertifikat lässt sich problemlos einbinden.

    erzeugt werden die Dateien

    ca_bundle.crt
    certificate.crt
    private.key

    Nun frage ich mich, was die in Deinem Beitrag erwähnten Dateien account_key.pem und domain_key.pem enthalten.

    Aus den Kommentaren hier lese ich heraus, dass domain_key.pem den Private Key enthält.

    Aber was ist in account_key.pem drin? Ist das evtl. ein anderer Name der ca_bundle.crt?

    Danke für Deine Hilfe!

    Michael

    1. Hallo Michael,

      ich habe mich jetzt schon eine Weile damit nicht mehr beschäftigt, aber der Account.key ist denke der Schlüssel zu Deinem LetsEncrypt Account. Mit diesem kannst Du dann deine Zertifikate erneuern. Habe ich so aber auch noch nie verwendet, sondern immer einen neuen angelegt.

      mfg
      Andy

Kommentar hinterlassen

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