Jump to content
Froxlor Forum
  • 0

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


Question

Posted

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

 

16 answers to this question

Recommended Posts

  • 0
Posted

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)

  • 0
Posted

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

 

  • 0
Posted

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

  • 0
Posted

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
  • 0
Posted

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

  • 0
Posted

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

  • 0
Posted

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)

 

  • 0
Posted

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. 

 

  • 0
Posted

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

  • 0
Posted

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 

 

 

  • 0
Posted

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

  • 0
Posted

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

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...