Einrichtung des Let's-encrypt-Zertifikat ist fehlgeschlagen.

  • ... so, nachdem ich alle IPv6 Einträge auskommentiert hatte, komme ich inzwischen auch auf wieder auf meine pdadmin-Oberfläche, zwar ohne https aber zumindest über die IP-Adresse des Servers.

    Nun versuchte ich über die Oberfläche ein letsencrypt-Zertifikat einzurichten und das ging mit folgender Error-Meldung schief:


    Einrichtung des Let's-encrypt-Zertifikat ist fehlgeschlagen.

    $! = <Operation not permitted>, result = <--2019-08-13 19:48:29-- https://dl.eff.org/certbot-auto

    Resolving dl.eff.org (dl.eff.org)... 151.101.112.201, 2a04:4e42:3::201

    Connecting to dl.eff.org (dl.eff.org)|151.101.112.201|:443... connected.

    HTTP request sent, awaiting response... 200 OK

    Length: 68689 (67K) [application/octet-stream]

    Saving to: '/opt/pdadmin/bin/certbot-auto'


    0K .......... .......... .......... .......... .......... 74% 8.23M 0s

    50K .......... ....... 100% 6.54M=0.008s


    2019-08-13 19:48:29 (7.72 MB/s) - '/opt/pdadmin/bin/certbot-auto' saved [68689/68689]


    ###############################

    /opt/pdadmin/etc/ssl-validation/ -d http://www.velodream.de -d velodream.de

    ###############################


    Bootstrapping dependencies for Debian-based OSes... (you can skip this with --no-bootstrap)

    Get:1 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]

    Ign:2 http://ftp.uni-kl.de/debian stretch InRelease

    Get:3 http://ftp.uni-kl.de/debian stretch-updates InRelease [91.0 kB]

    Hit:4 http://ftp.uni-kl.de/debian stretch Release

    Get:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [502 kB]

    Fetched 688 kB in 1s (627 kB/s)

    Reading package lists...

    Reading package lists...

    Building dependency tree...

    Reading state information...

    ca-certificates is already the newest version (20161130+nmu1+deb9u1).

    ca-certificates set to manually installed.

    gcc is already the newest version (4:6.3.0-4).

    python is already the newest version (2.7.13-2).

    openssl is already the newest version (1.1.0k-1~deb9u1).

    openssl set to manually installed.

    The following additional packages will be installed:

    libexpat1-dev libpython-dev libpython2.7 libpython2.7-dev python-pip-whl

    python-pkg-resources python2.7-dev python3-virtualenv

    Suggested packages:

    augeas-doc augeas-tools python-setuptools

    Recommended packages:

    libssl-doc

    The following NEW packages will be installed:

    augeas-lenses libaugeas0 libexpat1-dev libffi-dev libpython-dev libpython2.7

    libpython2.7-dev libssl-dev python-dev python-pip-whl python-pkg-resources

    python-virtualenv python2.7-dev python3-virtualenv virtualenv

    0 upgraded, 15 newly installed, 0 to remove and 4 not upgraded.

    Need to get 33.9 MB of archives.

    After this operation, 58.9 MB of additional disk space will be used.

    Get:1 http://security.debian.org/debian-security stretch/updates/main amd64 libexpat1-dev amd64 2.2.0-2+deb9u2 [134 kB]

    Get:2 http://security.debian.org/debian-security stretch/updates/main amd64 libssl-dev amd64 1.1.0k-1~deb9u1 [1591 kB]

    Get:3 http://ftp.uni-kl.de/debian stretch/main amd64 augeas-lenses all 1.8.0-1+deb9u1 [420 kB]

    Get:4 http://ftp.uni-kl.de/debian stretch/main amd64 libaugeas0 amd64 1.8.0-1+deb9u1 [288 kB]

    Get:5 http://ftp.uni-kl.de/debian stretch/main amd64 libffi-dev amd64 3.2.1-6 [161 kB]

    Get:6 http://ftp.uni-kl.de/debian stretch/main amd64 libpython2.7 amd64 2.7.13-2+deb9u3 [1071 kB]

    Get:7 http://ftp.uni-kl.de/debian stretch/main amd64 libpython2.7-dev amd64 2.7.13-2+deb9u3 [28.2 MB]

    Get:8 http://ftp.uni-kl.de/debian stretch/main amd64 libpython-dev amd64 2.7.13-2 [20.1 kB]

    Get:9 http://ftp.uni-kl.de/debian stretch/main amd64 python2.7-dev amd64 2.7.13-2+deb9u3 [290 kB]

    Get:10 http://ftp.uni-kl.de/debian stretch/main amd64 python-dev amd64 2.7.13-2 [1126 B]

    Get:11 http://ftp.uni-kl.de/debian stretch/main amd64 python-pip-whl all 9.0.1-2+deb9u1 [1399 kB]

    Get:12 http://ftp.uni-kl.de/debian stretch/main amd64 python-pkg-resources all 33.1.1-1 [166 kB]

    Get:13 http://ftp.uni-kl.de/debian stretch/main amd64 python-virtualenv all 15.1.0+ds-1 [61.1 kB]

    Get:14 http://ftp.uni-kl.de/debian stretch/main amd64 python3-virtualenv all 15.1.0+ds-1 [57.7 kB]

    Get:15 http://ftp.uni-kl.de/debian stretch/main amd64 virtualenv all 15.1.0+ds-1 [19.7 kB]

    debconf: unable to initialize frontend: Dialog

    debconf: (TERM is not set, so the dialog frontend is not usable.)

    debconf: falling back to frontend: Readline

    debconf: unable to initialize frontend: Readline

    debconf: (This frontend requires a controlling tty.)

    debconf: falling back to frontend: Teletype

    dpkg-preconfigure: unable to re-open stdin:

    Fetched 33.9 MB in 1s (26.6 MB/s)

    dpkg: warning: 'ldconfig' not found in PATH or not executable

    dpkg: warning: 'start-stop-daemon' not found in PATH or not executable

    dpkg: error: 2 expected programs not found in PATH or not executable

    Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin

    E: Sub-process /usr/bin/dpkg returned an error code (2)

    certbot-auto failed>


    Hat das schon jemand über die Oberfläche mit einer frischen Debian 9 Installation geschafft?


    Vielen Dank für Euer Feedback und Eure Hilfe,

    RudiX

  • Ja, das ist alles vorhanden.

    ldconfig in /usr/sbin mit 755

    ldconfig -V

    ldconfig (Debian GLIBC 2.24-11+deb9u4) 2.24


    ll /etc/init.d/

    insgesamt 68

    -rwxr-xr-x 1 root root 1232 Apr 7 2017 console-setup.sh

    -rwxr-xr-x 1 root root 3049 Okt 7 2017 cron

    -rwxr-xr-x 1 root root 2813 Jun 9 23:42 dbus

    -rwxr-xr-x 1 root root 6754 Jul 20 13:32 exim4

    -rwxr-xr-x 1 root root 3809 Mär 7 2018 hwclock.sh

    -rwxr-xr-x 1 root root 1479 Mai 19 2016 keyboard-setup.sh

    -rwxr-xr-x 1 root root 2044 Dez 26 2016 kmod

    -rwxr-xr-x 1 root root 4597 Sep 16 2016 networking

    -rwxr-xr-x 1 root root 1191 Mai 17 2018 procps

    -rwxr-xr-x 1 root root 2868 Jan 18 2017 rsyslog

    -rwxr-xr-x 1 root root 4033 Mär 1 17:19 ssh

    -rwxr-xr-x 1 root root 731 Jun 5 2017 sudo

    -rwxr-xr-x 1 root root 6087 Okt 28 2018 udev

    -rwxr-xr-x 1 root root 2757 Nov 23 2016 x11-common


    Scripts ebenfalls mit 755


    Oh, da ist ja exim4, gleich deinstalliert ;-))


    Ich denke eher das letsencrypt über pdadmin auf andere Pfade zeigt???


    Gruß RudiX

  • ... so nun habe ich mal den Redirect wie hier kein administrator - Zugang mehr beschrieben eingetragen, jetzt geht gar nix mehr. Kann die Admin-Oberfläche nicht mal über die IP-Adresse starten.


    Wird denn die Grundinstallation einer aktuellen SE und PD-Version unter Debian 9 seitens Bradler&Krantz nicht mal getestet?
    Alles seltsam, nur gut dass es dieses Forum gibt, ordentliche Dokumentation oder Hilfe im System ist ja nicht vorhanden.

    Kann doch nicht sein, dass es jedesmal Stunden braucht um ein lauffähiges Grundsystem aufzusetzen?


    Gruß RudiX

  • ... danke für die Info, PRIMA, aber das bringt mich keinen MilliMeter weiter.

    ... zudem bietet B&K das Installationsimage für Debian 9 für seine V-Server an.


    .... wäre ja schön, wenn sich Herr Bradler auch mal melden könnte.


    Gruß RudiX

  • Hallo Sumeragi,

    das alles hängt nicht an der PATH-Variable, die ganzen Python-Pakete ... musste ich nachinstallieren und den User erstmal in die Gruppe sudo setzen!


    1.) adduser <customername> sudo

    2.) apt-get install libexpat1-dev libpython-dev libpython2.7 libpython2.7-dev python-pip-whl

    python-pkg-resources python2.7-dev python3-virtualenv

    3.) apt-get install augeas-doc augeas-tools python-setuptools

    4.) apt-get install libssl-doc

    5.) ???

    6.) apt-get install python2.7-dev python3-virtualenv

    7.) apt-get install libffi-dev libssl-dev python-dev python-virtualenv python2.7-dev

    python3-virtualenv virtualenv

    8.) apt-get update && apt-get upgrade


    Aber,

    https://<hostname>/administrator geht immer noch nicht, auch nicht mit dem Redirect, wie Du es schon gepostet hast, es ist zum Mäusemelken!!!!


    Gehe am Montag auf mehrtägige bzw. mehrwöchige Radreise, ... wäre ja alles zu schön gewesen, ...
    Vielen Dank für Deinen Support, vielleicht haste ja noch ne Idee?


    Gruß, RudiX

  • ... so hier die Fehlermeldung von Firefox beim Aufruf über https://<SERVERNAME>/administrator


    /*schnipp*/

    vpscobra.service4it.com verwendet eine Sicherheitstechnologie namens "HTTP Strict Transport Security (HSTS)", durch welche Firefox nur über gesicherte Verbindungen mit der Website verbinden darf. Daher kann keine Ausnahme für die Website hinzugefügt werden.

    /*schnapp*/


    Wie kann ich für den SERVERNAME dieses HSTS abschalten?

    Ist in der pdadmin-Oberfläche nix zu finden, unter SSL gibt's jedoch den Punkt --> Zertifikat bestellen?


    Muss vielleicht ein letsencrypt-Zertifikat manuell angelegt werden?


    Gruß, RudiX

  • Ich nutze CentOS und habe Debian ein, zwei Mal zum Testen installiert. Hatte mit pd-admin keine Probleme bei den Tests. Mir ist daher etwas schleierhaft, wieso Endkunden in die sudoers Datei eingetragen werden müssen.


    Aber erst einmal zum Problem mit dem Zertifikat für den Hostnamen:

    ... so hier die Fehlermeldung von Firefox beim Aufruf über https://<SERVERNAME>/administrator


    /*schnipp*/

    vpscobra.service4it.com verwendet eine Sicherheitstechnologie namens "HTTP Strict Transport Security (HSTS)", durch welche Firefox nur über gesicherte Verbindungen mit der Website verbinden darf. Daher kann keine Ausnahme für die Website hinzugefügt werden.

    /*schnapp*/

    Prüft man vpscobra.service4it.com, sieht man dass das Zertifikat nicht zur URL passt:

    Offenbar ist http://www.service4it.com auf dem Server als Domain angelegt und hierfür ein Lets Encrypt Zertifikat eingerichtet. HSTS ist dann im Endkundenmenü über Subdomain konfigurierbar. Das Problem hier ist aber nicht HSTS, sondern ein falsches Zertifikat.


    Warum ist das so?


    Für den Hostnamen gibt es offenbar kein SSL-Zertifikat. Nun fragt man den Apache aber explizit auf Port 443 (Aufruf mittels https://...) nach einer gesicherten Verbindung. Da kein vhost mit Servernamen:443 gibt, wird der erste vhost in der Apache Konfiguration mit Port 443 verwendet. Dies ist in diesem Fall http://www.server4it.com . Kann man auch prüfen, in dem man die httpd.conf öffnet und nach ":443" sucht. Der erste Treffer ist dann http://www.service4it.com.

    Muss vielleicht ein letsencrypt-Zertifikat manuell angelegt werden?

    Ganz genau. Die Einrichtung für den Hostnamen muss manuell erfolgen. Über die Weboberfläche oder /opt/pdadmin/bin/letsencrypt geht dies nicht für den Hostnamen.


    1. Zertifikat ausstellen:

    Bash
    /opt/pdadmin/bin/certbot-auto-o certonly --webroot -w /opt/pdadmin/etc/ssl-validation/ -d vpscobra.service4it.com

    2. Symlinks erstellen:

    Bash
    ln -s /etc/letsencrypt/live/vpscobra.service4it.com/privkey.pem /opt/pdadmin/sslcerts/vpscobra.service4it.com-key
    ln -s /etc/letsencrypt/live/vpscobra.service4it.com/cert.pem /opt/pdadmin/sslcerts/vpscobra.service4it.com-cert
    ln -s /etc/letsencrypt/live/vpscobra.service4it.com/fullchain.pem /opt/pdadmin/sslcerts/vpscobra.service4it.com-cacert

    3. Apache Konfig neu schreiben:

    Code
    /opt/pdadmin/bin/httpd_vhosts.pl

    Das sollte es gewesen sein und die Weboberfläche sollte wieder erreichbar sein. Falls es zu Fehlern kommt, bräuchten wir hier die durchgeführten Schritte, sowie den vollständge Fehlermeldung, um bei Problemen helfen zu können.

  • Upps, mein Fehler. Falsch mit Copy&Paste gearbeitet. Die Ordner werden vom certbot automatisch angelegt. Richtig ist natürlich

    Code
    /opt/pdadmin/bin/certbot-auto-o certonly --webroot -w /opt/pdadmin/etc/ssl-validation/ -d vpscobra.service4it.com
  • Habe es im anderen Threads gesehen:

    Der letzte Fehler liegt am genannten Rate Limit. Es sind 5 Fehlversuche pro Stunde erlaubt.


    Ich meine der Redirect wurde irgendwann Mal bereits gefixt. Sollte man in der httpd.conf sehen. Da es zu einem 404 Fehler kommt, kann das webroot falsch sein. Klappt es mit /usr/local/pd-admin2/htdocs als webroot ?

  • wenn ich

    /opt/pdadmin/bin/certbot-auto aufrufe kommt das:

    usage:

    certbot-auto-o [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN] ...


    Certbot can obtain and install HTTPS/TLS/SSL certificates. By default,

    it will attempt to use a webserver both for obtaining and installing the

    certificate.

    certbot: error: unrecognized arguments: less /opt/pdadmin/bin/certbot-auto


    und wenn ich

    /opt/pdadmin/bin/certbot-auto-o aufrufe kommt dies:

    Saving debug log to /var/log/letsencrypt/letsencrypt.log

    Certbot doesn't know how to automatically configure the web server on this system. However, it can still get a certificate for you. Please run "certbot-auto-o certonly" to do so. You'll need to manually configure your web server to use the resulting certificate.


    Muss der RedirectMatch nun in der httpd.conf drinne sein oder auskommentiert sein?

    Bei mir sieht das httpd24.conf-template so aus:


    #### VirtualHosts

    ####


    # Bitte geben Sie in der naechsten Zeile die IP-Adresse Ihres Servers an!

    <VirtualHost $$STANDARD_IP:80>

    # Bitte passen Sie in der naechsten Zeilie den Servernamen an

    ServerName $$SERVERNAME

    # check

    RedirectMatch ^(?!/\.well-known/acme-challenge).* https://$$SERVERNAME$0

    ## REDIRECT_TO_HTTPS ##

    DocumentRoot /usr/local/pd-admin2/htdocs

    AddHandler cgi-script .cgi .pl

    RewriteEngine On

    Alias /html /opt/pdadmin/www/html

    Alias /assets /opt/pdadmin/www/assets

    Alias /js /opt/pdadmin/www/js

    Alias /css /opt/pdadmin/www/css

    Alias /images /opt/pdadmin/www/images

    Alias /customer /opt/pdadmin/www/customer

    Alias /administrator /opt/pdadmin/www/administrator

    Alias /pop3 /opt/pdadmin/www/pop3

    RewriteRule /customer/sid/[a-z0-9]+/(.*) /opt/pdadmin/www/customer/$1

    RewriteRule /administrator/sid/[a-z0-9]+/(.*) /opt/pdadmin/www/administrator/$1

    RewriteRule /pop3/sid/[a-z0-9]+/(.*) /opt/pdadmin/www/pop3/$1

    # SetEnv RLIMIT_CPU 45

    SetEnv RLIMIT_CPU 240

    SetEnv RLIMIT_NPROC 64

    SetEnv RLIMIT_AS 256000000

    SetEnv RLIMIT_NOFILE 200

    # WEBMAILER / phpMyAdmin

    ScriptAlias /cgi-sys/ /usr/local/pd-admin2/cgi-sys/

    AddHandler php5wrap .php .php3 .php4

    Action php5wrap /cgi-sys/php5-cgiwrap//usr/local/pd-admin2/htdocs/

    Alias /pda-ssl-validation-files /opt/pdadmin/etc/ssl-validation

    </VirtualHost>


    ####

    #### pd-admin VirtualHosts

    ####


    Alias /pda-validate-ssl-files /opt/pdadmin/etc/validate-ssl


    <FilesMatch "[A-Z0-9]+\.txt">

    RewriteEngine on

    RewriteCond %{ENV:REDIRECT_STATUS} ^$

    RewriteCond %{REQUEST_FILENAME} ([A-Z0-9]+.txt)$

    RewriteCond /opt/pdadmin/etc/validate-ssl/%1 -f

    RewriteRule /.+ /pda-validate-ssl-files/%1 [L,DPI]

    </FilesMatch>

  • Was passiert denn, wenn Sie den Befehl mit /opt/pdadmin/bin/certbot-auto ausführen?

    Damit war der komplette Befehl gemeint und nicht bloß der certbot alleine:

    Bash
    /opt/pdadmin/bin/certbot-auto certonly --webroot -w /usr/local/pd-admin2/htdocs -d vpscobra.service4it.com


    Zitat von Rudix

    Muss der RedirectMatch nun in der httpd.conf drinne sein oder auskommentiert sein?

    Lässt sich einfach feststellen. Einfach Mal in die httpd.conf rein schauen ;) Derzeit steht die Zeile ja schon im Template drin. Allerdings auch

    Code
    ## REDIRECT_TO_HTTPS ##

    Die Zeile wird bei Ausführung von httpd_vhosts.pl ersetzt. Und ich meine dies wurde gefixt und es wird der "richtige" Redirect gesetzt. Dies sieht man ebenfalls in der httpd.conf.

    Edit: Kurzum, der Redirect muss drin sein. Sonst gibt es Probleme bei der Verlängerung des Let's Encrypt für den Hostnamen.

  • ... so das Zertifikat ist erfolgreich durchgelaufen, trotzdem keinen Zugriff per https auf <hostname>/administrator


    Ich vermute daß die Gruppe der SymLinks auf den <hostname> falsch gesetzt sind, weiss aber leider nicht wie ich die ändern kann?

    Ein Löschen des SymLinks und neu anlegen hat dies nicht geändert, hm.

    Bei dem <servername> wird root.root gesetzt, bei den Subdomains wird root.www gesetzt!


    root@vpscobra:/etc/letsencrypt/live# ll vpscobra.service4it.com/

    insgesamt 12

    drwxr-xr-x 2 root www 4096 Aug 20 23:43 .

    drwx------ 5 root www 4096 Aug 18 23:30 ..

    lrwxrwxrwx 1 root root 47 Aug 20 23:42 cert.pem -> ../../archive/vpscobra.service4it.com/cert2.pem

    lrwxrwxrwx 1 root root 48 Aug 20 21:12 chain.pem -> ../../archive/vpscobra.service4it.com/chain2.pem

    lrwxrwxrwx 1 root root 52 Aug 20 21:12 fullchain.pem -> ../../archive/vpscobra.service4it.com/fullchain2.pem

    lrwxrwxrwx 1 root root 50 Aug 20 21:12 privkey.pem -> ../../archive/vpscobra.service4it.com/privkey2.pem

    -rw-r--r-- 1 root www 692 Aug 18 23:30 README


    SUBDOMAIN

    drwxr-xr-x 2 root www 4096 Aug 15 22:23 .

    drwx------ 5 root www 4096 Aug 18 23:30 ..

    lrwxrwxrwx 1 root www 40 Aug 15 22:23 cert.pem -> ../../archive/www.velodream.de/cert1.pem

    lrwxrwxrwx 1 root www 41 Aug 15 22:23 chain.pem -> ../../archive/www.velodream.de/chain1.pem

    lrwxrwxrwx 1 root www 45 Aug 15 22:23 fullchain.pem -> ../../archive/www.velodream.de/fullchain1.pem

    lrwxrwxrwx 1 root www 43 Aug 15 22:23 privkey.pem -> ../../archive/www.velodream.de/privkey1.pem


    Wie kann ich die Gruppe der SymLinks auf www ändern???


    Vielen Dank für die Unterstützung,

    RudiX

  • Bitte nichts an den Symlinks unter /etc/letsencrypt/ ändern! Die werden so vom certbot erstellt/verwaltet.


    Da für den Hostnamen noch keine gesicherte Verbindung verfügbar ist vermute ich, dass die Symlinks zwischen /etc/letsencrypt/live/vpscobra.service4it.de und /opt/pdadmin/sslcerts nicht gesetzt sind (wie oben im Thread beschrieben). Können Sie bitte einmal folgende Ausgabe Posten:

    Bash
    ls -al /opt/pdadmin/sslcerts/vpscobra.service4it.de*
  • Hallo Sumeragi, so sah es aus, Du bist der Beste

    root@vpscobra:~# ls -al /opt/pdadmin/sslcerts/vpscobra.service4it.de*

    ls: Zugriff auf '/opt/pdadmin/sslcerts/vpscobra.service4it.de*' nicht möglich: Datei oder Verzeichnis nicht gefunden


    ... habe inzwischen die SymLinks von /opt/pdadmin/sslcerts ---> auf /etc/letsencrypt/live/<hostname> gesetzt, es funktioniert.

    Ich DANKE DIR, SUPER, wieder ein Like von mir!


    Aber da war doch noch ein Eintrag in die crontab zu machen oder?


    Viele Grüße,
    RudiX