September 6, 20241 yr Ich habe auch vor 2.2 schon das Froxlor vHost LE Zertifikat für Postfix, Dovecot und Proftpd verwendet, halt die Konfiguration manuell angepasst und auf /etc/ssl/froxlor-custom/vhostdomain.de.* verwiesen. Nun wollte ich das Froxlor überlassen da es ja dieses tolle Feature nun gibt aber irgendwie will er das nicht, ich habe es wie folgt probiert: Unter "Einstellungen » SSL-Einstellungen" - "Verwende das froxlor Let's Encrypt Zertifikat für folgende Dienste" zunächst mal proftpd ausgewählt und gespeichert. Master Cron einmal laufen lassen. Nun hat er mir eine /etc/proftpd/ban.tab und /etc/proftpd/conf.d/99-froxlor-ratelimit.conf mit angelegt die ich vorher nicht hatte. Meine /etc/proftpd/tls.conf hat er aber nicht angefasst. Gut habe ich gedacht früher musste man ja auch öfter "Configs neu schreiben" und habe über System - Konfiguration - Proftpd neu konfigurieren lassen. Dann schreibt er mir auch die tls.conf neu aber mit den Pfaden zu irgend einem selbst signieren proftpd Zertifikat: <IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol TLSv1.2 TLSv1.3 TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key TLSECCertificateFile /etc/ssl/certs/proftpd_ec.crt TLSECCertificateKeyFile /etc/ssl/private/proftpd_ec.key # TLSCACertificateFile TLSOptions NoSessionReuseRequired TLSVerifyClient off # Are clients required to use FTP over TLS when talking to this server? TLSRequired on # Allow SSL/TLS renegotiations when the client requests them, but # do not force the renegotiations. Some clients do not support # SSL/TLS renegotiations; when mod_tls forces a renegotiation, these # clients will close the data connection, or there will be a timeout # on an idle data connection. # #TLSRenegotiate required off </IfModule> Was mache ich falsch? Bei postfix und dovecot habe ich mich jetzt nicht getraut, ist schließlich kein Testsystem
September 6, 20241 yr Ja das ist noch etwas knifflig, die services configs werden nur beim ISSUE des zertifikats angefasst, nicht wenn es schon eins gibt. Einfach für den froxlor-vhost Let's Encrypt deaktivieren, cron laufen lassen damit alles weg ist, dann let's encrypt wieder aktivieren und cron laufen lassen (mind. 2x)
September 6, 20241 yr Author Das war keine gute Idee, er legt mir das Zertifikat nicht wieder an. Auch nach dem Aktivieren schreibt er mir SSLCertificateFile /etc/ssl/froxlor_selfsigned.pem SSLCertificateKeyFile /etc/ssl/froxlor_selfsigned.key in die 10_froxlor_ipandport.conf Der Cron macht keine Anstalten für meinen Hostname irgendwas in Sachen acme zu starten, egal wie oft ich ihn aufrufe. Muss ich das hostname Verzeichnis noch manuell aus achme.sh löschen ? Ich meine auch meine vHost Domain war vorher in der Domains Übersicht, jetzt ist sie da nicht mehr. Zum Glück hatte ich das Zertifikat und die Konfig vorher noch gesichert ...
September 6, 20241 yr naja schau doch nach aktivierung mal in die ausgabe von `bin/froxlor-cli froxlor:cron -fd` was er da bzgl issue des zertifikats sagt...ich habe leider keine glaskugel und kenne dein system nicht, bisschen info brauchen wir schon
September 6, 20241 yr Author Garnix. Mein Froxlor Hostname taucht da einfach nicht mehr auf, er updatet ganz brav alle andere Domains: [information] Updated Let's Encrypt certificate for **** .... [information] Let's Encrypt certificates have been updated [information] apache::createIpPort: creating ip/port settings for 212.72.185.190:80 [debug] XXX.YYY.XXX.YYY:80 :: inserted listen-statement [notice] XXX.YYY.XXX.YYY:80 :: namevirtualhost-statement no longer needed for apache-2.4 [debug] XXX.YYY.XXX.YYY:80 :: inserted vhostcontainer [information] apache::createIpPort: creating ip/port settings for XXX.YYY.XXX.YYY:443 [debug] XXX.YYY.XXX.YYY:443 :: inserted listen-statement [debug] XXX.YYY.XXX.YYY:443 :: inserted vhostcontainer
September 6, 20241 yr Author Ich sehe er will auch immer noch: Neuerstellung der Webserver-Konfiguration aber egal wie oft ich den cron ausführe er macht da gefühlt nix
September 6, 20241 yr komm doch mal im discord vorbei, dann schauen wir uns das an. Weil "geht nicht", "er macht nix" hilft mir halt null dir zu helfen wenns keine info gibt
March 7Mar 7 Hallo, wisst ihr evtl. noch was damals dann das Problem war? Ich habe aktuell exakt das selbe Thema. Lg
March 7Mar 7 Häufigste Ursache ist, dass die Option aktiviert wird, nachdem froxlor schon ein let's encrypt zertifikat hat und es damit die Integration nicht mehr triggered, siehe: On 9/6/2024 at 9:29 AM, d00p said: Ja das ist noch etwas knifflig, die services configs werden nur beim ISSUE des zertifikats angefasst, nicht wenn es schon eins gibt. Einfach für den froxlor-vhost Let's Encrypt deaktivieren, cron laufen lassen damit alles weg ist, dann let's encrypt wieder aktivieren und cron laufen lassen (mind. 2x)
March 7Mar 7 Ich habe Let's Encrypt für den Froxlor vhost deaktiviert und dann den Cronjob laufen lassen. Die Zertifikate sind auch weg ( auch "/root/.acme.sh/acme.sh --list" bestätigt dies). Unter Froxlor>Ressourcen>SSL Zertifikate wird natürlich auch kein Zertifikat mehr gelistet. Nach dem wieder aktivieren habe ich nun zweimal den Cronjob laufen lassen (froxlor-cli froxlor:cron -f -d) - und nicht deutet darauf hin, dass versucht wird ein neues Zertifikat zu holen.
March 7Mar 7 Kann ich ohne mehr info nichts zu sagen...funktioniert hier wunderbar. Prüfe ob es in der Datenbank für die domainid=0 (froxlor-vhost) keine einträge gibt in der tabelle `domain_ssl_settings` und das auch wirklich Let's encrypt in den 'Froxlor vhost einstellungen' wieder aktiviert ist
March 7Mar 7 Auch bei mir funktioniert das auf 6 anderen VMs 🙂 Nur auf dieser einen zickts und so ganz sehe ich noch nicht warum. in der Tabelle domain_ssl_settings gibts auf jeden Fall keinen Eintrag mehr für die domainid 0 - nur für die Kundendomains wo auch alles läuft (hab auch gerade einen neue angelegt zum Testen und hier wird problemlos ein Zertifikat erstellt) Tabelle panel_settings zeigt le_froxlor_enabled = 1 und le_froxlor_redirect = 0 danke aber für deine Hilfe
March 7Mar 7 Dann kann es eigentlich nur noch sein, dass es unter /root/.acme.sh/ für den Froxlor Hostname noch Zertifikatsdateien gibt...auch wenn die Prüfung auf "keinen Eintrag in der `domain_ssl_settings`" schon vorher alles klarmachen sollte
March 7Mar 7 Und genau daran lag es! In "Froxlor/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php" wird geprüft ob es einen Eintrag in der Datenbank gibt. Wenn es einen gibt und dort "validtodate" leer ist wird ein Issue ausgelöst Oder wenn es keinen Eintrag in der Datenbank gibt UND keine Zertifikatsdatei existiert die noch gültig ist. private static function issueFroxlorVhost() { if (Settings::Get('system.le_froxlor_enabled') == '1') { // let's encrypt is enabled, now check whether we have a certificate $froxlor_ssl_settings_stmt = Database::prepare(" SELECT * FROM `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` WHERE `domainid` = '0' "); $froxlor_ssl = Database::pexecute_first($froxlor_ssl_settings_stmt); // also check for possible existing certificate if (($froxlor_ssl && empty($froxlor_ssl['validtodate'])) || (!$froxlor_ssl && !self::checkFsFilesAreNewer(Settings::Get('system.hostname'), date('Y-m-d H:i:s'))) ) { return true; } } return false; } Um dies zu umgehen, müsste man beim löschen der Zertifikate auch die Dateien in /root/.acme.sh/ löschen. Dies wäre aber auch riskant, wenn die Zertifikate auch für andere Dienste verwendet werden. Leichter wäre vermutlich einfach die Prüfung checkFsFilesAreNewer hier raus zu nehmen, oder übersehe ich da etwas? also quasi so: if ( !$froxlor_ssl || ($froxlor_ssl && empty($froxlor_ssl['validtodate'])) ) { return true; } Vielen Dank auf jeden Fall
Create an account or sign in to comment