Let's Encrypt: falsche Symlinks

besterwosgibt

New Member
Hi Leute,
wir fahren ISPConfig 3.1.2 in einem Cluster mit mehreren Servern und möchte gerne LE nutzen.
Leider ist der Restart des Apache nach Aktivierung der LE-Funktion nicht erfolgreich:
Code:
Mi 1. Feb 20:01:42 CET 2017 01.02.2017-14:01 - WARNING - Apache did not restart after the configuration change for website domain. Reverting the configuration. Saved non-working config as /etc/apache2/sites-available/domain.vhost.err
Mi 1. Feb 20:01:42 CET 2017 01.02.2017-14:01 - WARNING - Reason for Apache restart failure: Restarting web server: apache2 failed!
Mi 1. Feb 20:01:42 CET 2017 The apache2 configtest failed. ... (warning).
Mi 1. Feb 20:01:42 CET 2017 Output of config test was:
Mi 1. Feb 20:01:42 CET 2017 AH00526: Syntax error on line 121 of /etc/apache2/sites-enabled/100-domain.vhost:
Mi 1. Feb 20:01:42 CET 2017 SSLCertificateFile: file '/var/www/clients/client4/web704/ssl/domain.crt' does not exist or is empty
Mi 1. Feb 20:01:42 CET 2017 Action 'configtest' failed.
Der angesprochene Ordner sieht so aus:
Code:
ls -lha /var/www/clients/client4/web704/ssl
insgesamt 8,0K
drwxr-xr-x 2 root root 4,0K Feb  1 20:01 .
drwxr-xr-x 9 root root 4,0K Feb  1 20:01 ..
lrwxrwxrwx 1 root root   40 Feb  1 20:01 domain-le.bundle -> /etc/letsencrypt/live/domain/chain.pem
lrwxrwxrwx 1 root root   39 Feb  1 20:01 domain-le.crt -> /etc/letsencrypt/live/domain/cert.pem
lrwxrwxrwx 1 root root   42 Feb  1 20:01 domain-le.key -> /etc/letsencrypt/live/domain/privkey.pem
Wie können wir das Problem lösen bzw. woher kommt der Fehler? Ideen?
 

Till

Administrator
LE auf Clustern geht nicht ohne weiteres, da LE ja ber http token authentifiziert wird und der muss in cehtzeit auf allen nodes durch Certbot angelegt werden können. Die einzige Möglichkeit um LE in einem cluster zu nutzen sehe ich im Moment darin das man das Verzeichnis /etc/letsencrypt/ und das Verzeichnis /usr/local/ispconfig/interface/acme als network drives macht, z.B. per NFS, so das der von Certbot erzeugte token in Echtzeit auf allen nodes verfügbar ist aud auch das von Certbot erstellte cert.
 

besterwosgibt

New Member
Ich habe mich offenbar falsch ausgedrückt: wir nutzen ISPConfig nicht im Cluster, sondern nur mit mehreren vServern. Sorry dafür!
 

Till

Administrator
Kein Problem :) Das sind aber einzelne server, oder ist es ein multiserver system? Und wenn es ein multiserver system ist, dann nutzt Ihr nicht die "Ist mirror von Sever" option, denn diese würde das System zum Cluster machen und zu den von mir erläuterten Problemen führen.

Wenn das es kein Cluster ist, dann schau doch bitte mal ins letsencrypt.log, da sollte drin stehen warum LE das cert nicht ausstellen konnte. Denn ich vermute der von Dir gepostete Fehler ist der Folgefehler davon das LE das cert nicht ausgestellt hat und ISPConfig daher die zuletzt funktionierende config ohne SSL verwendet.
 

besterwosgibt

New Member
Die angesprochene Option nutzen wir nicht, das sind einzelne (virtuelle) Server.

Das Problem ist nicht, dass das Zertifikat nicht ausgestellt wird, denn das wird es - siehe Beitrag #1, die Files existieren, werden allerdings falsch verlinkt (mit *-le.crt), die Apache-Konfiguration wird aber auf *.crt gesetzt; da fehlt offensichtlich der Symlink. Setze ich den Symlink händisch (ln -s *-le.crt *.crt; wobei * für die entsprechende Domain steht), funktioniert der Apache-Neustart und SSL ist korrekt konfiguriert.
 

Till

Administrator
Nutzt Ihr vielleicht ein custom vhost template und habt es nicht an die aktuelle version angepasst?
 

Till

Administrator
Ok, dann poste bitte mal die Ausgabe von:

ls -la /usr/local/ispconfig/server/lib/conf-custom/
ls -la /etc/letsencrypt/live/domain/
ls -la /etc/letsencrypt/archive/domain/

und die Datei /usr/local/ispconfig/server/conf/vhost.conf.master bzw. die zeilen 63 und 64 sollten reichen.
 

besterwosgibt

New Member
Code:
ls -la /usr/local/ispconfig/server/lib/conf-custom/
ls: Zugriff auf /usr/local/ispconfig/server/lib/conf-custom/ nicht möglich: Datei oder Verzeichnis nicht gefunden

Code:
ls -lha /etc/letsencrypt/live/example-domain.de/
insgesamt 8,0K
drwxr-xr-x 2 root root 4,0K Jan 26 01:11 .
drwx------ 9 root root 4,0K Feb  1 20:01 ..
lrwxrwxrwx 1 root root   39 Jan 26 01:11 cert.pem -> ../../archive/example-domain.de/cert1.pem
lrwxrwxrwx 1 root root   40 Jan 26 01:11 chain.pem -> ../../archive/example-domain.de/chain1.pem
lrwxrwxrwx 1 root root   44 Jan 26 01:11 fullchain.pem -> ../../archive/example-domain.de/fullchain1.pem
lrwxrwxrwx 1 root root   42 Jan 26 01:11 privkey.pem -> ../../archive/example-domain.de/privkey1.pem

Code:
ls -lha /etc/letsencrypt/archive/example-domain.de/
insgesamt 24K
drwxr-xr-x 2 root root 4,0K Jan 26 01:11 .
drwx------ 9 root root 4,0K Feb  1 20:01 ..
-rw-r--r-- 1 root root 2,2K Jan 26 01:11 cert1.pem
-rw-r--r-- 1 root root 1,7K Jan 26 01:11 chain1.pem
-rw-r--r-- 1 root root 3,8K Jan 26 01:11 fullchain1.pem
-rw-r--r-- 1 root root 3,2K Jan 26 01:11 privkey1.pem

Zeile 63 und 64 von /usr/local/ispconfig/server/conf/vhost.conf.master
Code:
SSLCertificateFile <tmpl_var name='ssl_crt_file'>
SSLCertificateKeyFile <tmpl_var name='ssl_key_file'>

There you go... :)
 

Till

Administrator
Sorry, der erste Pfad war falsch, richtig ist:

ls -la /usr/local/ispconfig/server/conf-custom/

die anderen Angaben sehen soweit gut aus. Hattest Du ein "normales" SSL zertifikat in dieser website genutzt bevor DU letsencrypt aktiviert hast.
 

besterwosgibt

New Member
Danke für den Hint, dort lag ein Custom vHost rum, den ich irgendwie übersehen habe - Wald vor lauter Bäumen... danke für den schnellen Support! :)
 

Werbung

Top