Jump to content
View in the app

A better way to browse. Learn more.

Froxlor Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Verwende das froxlor Let's Encrypt Zertifikat für folgende Dienste in 2.2

Featured Replies

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 :)

 

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)

  • 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 ...

 

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

  • 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

hast du denn Let's Encrypt für den froxlor vhost auch wieder aktiviert?

  • 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

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

  • Author

Das sch*** Discord will meinen Account nicht ... Moment

  • 6 months later...

Hallo,

wisst ihr evtl. noch was damals dann das Problem war? Ich habe aktuell exakt das selbe Thema.

Lg

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)

 

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. 

 

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

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 

 

 

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

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.