Let's Encrypt für den Servername verwenden

    • Offizieller Beitrag

    - Welche Version von pd-admin wird eingesetzt? 4.58
    - Welche Version der Serverumgebung wird eingesetzt? 3 0.312


    Hallo,
    wie kann ich bei der Server Domain Let's Encrypt verwenden?


    Der VirtualHost sieht im Template wie folgt aus:


    $$SERVERNAME ist z.B. s3.example.org
    beim Aufruf von /opt/pdadmin/bin/letsencrypt erhalte ich jedoch folgende Meldungen


    Wo ist mein Fehler, dass http://s3.example.org/.well-kn…AkC5ovFVCi6aR15g70YwA2FgU nicht erreichbar ist? Warum funktioniert der Alias nicht?
    Für <VirtualHost $$STANDARD_IP:443> habe ich bereits ein Eintrag mit einem selbstsignierten Zertifikat erstellt, ist das evtl. das Problem?


    mfg
    Twilo

    • Offizieller Beitrag

    Hallo,


    der Server kann s3.example.org auflösen.
    Wenn das DNS nicht richtig funktionieren würde, wäre der HTTP-Status nicht "404 Not Found".


    Es sieht so aus, als würde der Alias nicht funktionieren …


    Wenn ich das mit einer anderen Subdomain probiere, werden für die Dauer der Scriptausführung von /opt/pdadmin/bin/letsencrypt unter /opt/pdadmin/etc/ssl-validation/.well-known/acme-challenge/ Dateien angelegt.


    Warum geschieht dies nicht für den Hostnamen des Servers?


    mfg
    Twilo

  • Das Problem ist ein mismatch des document roots:


    Zitat

    Template:

    Code
    DocumentRoot /usr/local/pd-admin2/htdocs_80


    Certbot:

    Code
    Using the webroot path /usr/local/pd-admin2/htdocs for all unmatched domains.


    Daher kommt es zu dem 404 Fehler. Vermutlich ist /usr/local/pd-admin2/htdocs in der letsencrypt binary fix implementiert. Was passiert denn wenn man den Pfad im Template anpasst?

  • Dann würde ich zunächst einmal händisch


    Code
    /usr/local/pd-admin2/htdocs/.well-known/acme-challenge/1.txt


    anlegen und diese (extern) mit


    Code
    curl -I http://s3.example.org/.well-known/acme-challenge/1.txt


    aufrufen. Wenn dies auch ein 404 ergibt, muss man sich die Apache Konfig anschauen. Dann wird vermutlich immer noch ein falsches DocumentRoot verwendet.

    • Offizieller Beitrag

    Hallo,



    in der error_log steht dann folgendes

    Code
    [Fri May 11 21:32:17 2018] [alert] [client 127.0.0.1] /usr/local/pd-admin2/htdocs/forbidden/.htaccess: deny not allowed here


    Code
    s3:~
    > cat /usr/local/pd-admin2/htdocs/forbidden/.htaccess
    deny from all


    wenn ich jedoch http://s3.example.org/.well-known/acme-challenge/test.txt bei mir lokal aufrufe, erhalte ich folgende Ausgabe

    HTTP
    kay@W530:/tmp$ curl --head http://s3.example.org/.well-known/acme-challenge/test.txt
    HTTP/1.1 200 OK
    Date: Fri, 11 May 2018 19:27:00 GMT
    Server: Apache
    Last-Modified: Fri, 11 May 2018 19:26:58 GMT
    ETag: "240d64-5-56bf31e9af5f7"
    Accept-Ranges: bytes
    Content-Length: 5
    Content-Type: text/plain


    8o


    mfg
    Twilo

    • Offizieller Beitrag

    nachdem ich in der Datei /etc/hosts, den Eintrag für s3.example.org geändert habe
    vorher

    Code
    127.0.0.1  s3.example.org www.s3.example.org localhost.localdomain localhost


    aktuell

    Code
    127.0.0.1  localhost.localdomain localhost
    1.2.3.4  s3.example.org www.s3.example.org


    kam einmal diese Fehlermeldung


    und seit dem nur noch


    In /opt/pdadmin/etc/ssl-validation/.well-known/acme-challenge/ wird aber während des Aufrufes immer noch keine Datei erzeugt :(


    mfg
    Twilo

  • Zitat

    Original von Twilo
    In /opt/pdadmin/etc/ssl-validation/.well-known/acme-challenge/ wird aber während des Aufrufes immer noch keine Datei erzeugt :(


    Das liegt daran, dass weiterhin /usr/local/pd-admin2/htdocs als WebRoot beim certbot verwendet wird.


    Zitat

    Original von Twilo

    Code
    [...]
    Using the webroot path /usr/local/pd-admin2/htdocs for all unmatched domains.
    [...]


    Wenn /opt/pdadmin/etc/ssl-validation verwendet werden soll, müsste in diesem Fall der certbot einmal manuell ausgeführt werden. Den Befehl findet man auch im letsencrypt log unter /var/log/letsencrypt.


    Ich denke auch nicht, dass dies ein DNS Problem, sondern viel mehr ein Konfig Problem ist...

    • Offizieller Beitrag

    Hallo,


    hm, stimmt bei den anderen Domains steht
    Using the webroot path /opt/pdadmin/etc/ssl-validation for all unmatched domains.
    woher kommt dieser Pfad?


    habe den certbot-auto jetzt wie folgt aufgerufen …

    Code
    > /opt/pdadmin/bin/certbot-auto certonly --agree-tos --non-interactive --email daniel@bradler.com --no-self-upgrade --keep-until-expiring --expand --webroot -w /opt/pdadmin/etc/ssl-validation -d s3.example.org -d www.s3.example.org
    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    Plugins selected: Authenticator webroot, Installer None
    Obtaining a new certificate
    An unexpected error occurred:
    There were too many requests of a given type :: Error creating new authz :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/
    Please see the logfiles in /var/log/letsencrypt for more details.


    ;(


    pd-admin verursacht bei uns etliche Fehlversuche, da der Aufruf von /.well-known/acme-challenge/ auch umgeleitet werden, wenn bei der Domain eine Umleitung eingerichtet ist
    :O


    EDIT: warum überhaupt --email daniel@bradler.com ?! ?(


    mfg
    Twilo

  • Zitat

    Original von Twilo
    woher kommt dieser Pfad?


    Ich vermute der Pfad ist in der letsencrypt binary fest implementiert. Zumindest habe ich weder in der DB, noch pdadmin.conf eine entsprechende Angabe gesehen. Sobald also ein Zertifikat für den Server Hostnamen ausgestellt werden soll, wird dieser Pfad verwendet.


    Zitat
    Code
    There were too many requests of a given type :: Error creating new authz :: too many failed authorizations recently: see [URL]https://letsencrypt.org/docs/rate-limits/[/URL]
    Please see the logfiles in /var/log/letsencrypt for more details.

    :evil: ;(


    Das ist natürlich jetzt ärgerlich. Aber das sollte in einer Stunde wieder funktionieren.


    EDIT:

    Zitat

    EDIT: warum überhaupt --email daniel@bradler.com ?! verwirrt


    Vermutlich ist auch dies in der binary so implementiert...


    Man kann dies aber glaub ich unter


    Code
    /etc/letsencrypt/accounts/...../regr.json


    anpassen. Ist aber nicht getestet...