Jump to content
Froxlor Forum
  • 0
df8oe

[gelöst] webserver konfiguration wird auf zwei Servern alle 5 Minuten erneuert

Question

Hallo in die Runde,

ich habe Froxlor 0.10.19 auf zwei Servern am Laufen. Bei beiden wird seit einiger Zeit - ich kann leider nicht genau sagen seit wann - alle 5 Minuten die Webserverkonfiguration neu geschrieben. Bei einem ist zusätzlich durch eigenen Fehler der Inhalt aller Domain-Ordner in /root/.acme.sh/name-der-domain/ gelöscht worden. Bei diesem Server erhalte ich bei einem force debug die folgende Ausgabe:

[error] Could not find file 'hullewulle.at.cer' in '/root/.acme.sh/hullewulle.at/'
[error] Could not find file 'ca.cer' in '/root/.acme.sh/hullewulle.at/'
[error] Could not find file 'fullchain.cer' in '/root/.acme.sh/hullewulle.at/'
[error] Could not find file 'hullewulle.at.csr' in '/root/.acme.sh/hullewulle.at/'
[error] Could not get Let's Encrypt certificate for hullewulle.at:

...und das für alle Domains.

Wie kann ich acme.sh dazu bringen, dass es einfach für alle Domains neue Zertifikate abholt? Damit sollte dann doch wieder alles im grünen Bereich sein - oder nicht? Ich habe es schon mit

acme.sh -f -r -d hullewulle.at

versucht, aber das ergibt nur ein 

[Sa 25. Jul 09:55:46 CEST 2020] Renew: 'hullewulle.at'
[Sa 25. Jul 09:55:46 CEST 2020] 'hullewulle.at' is not a issued domain, skip.


Damit dürfte aber das Problem dass alle 5 Minuten die Webserverkonfiguration neu geschrieben wird nicht gelöst sein. Ein force debug bringt bei diesem zweiten Server keine Auffälligkeit. Wo kann ich nachschauen was den Neubau der Webserverkonfiguration triggert?

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

jap - da hast du recht....wieso zur hölle werden bei mir nirgends die configs erneuert? xD Probier mal folgenden Patch, der sollte das eigentlich beheben:

diff --git a/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php b/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php
index e0e152c9..209e51b4 100644
--- a/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php
+++ b/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php
@@ -62,7 +62,7 @@ class AcmeSh extends \Froxlor\Cron\FroxlorCron
                        $issue_froxlor = self::issueFroxlorVhost();
                        $issue_domains = self::issueDomains();
                        $renew_froxlor = self::renewFroxlorVhost();
-                       $renew_domains = self::renewDomains();
+                       $renew_domains = self::renewDomains(true);
                        if ($issue_froxlor || $issue_domains || $renew_froxlor || $renew_domains) {
                                // insert task to generate certificates and vhost-configs
                                \Froxlor\System\Cronjob::inserttask(1);
@@ -409,7 +409,7 @@ class AcmeSh extends \Froxlor\Cron\FroxlorCron
        /**
         * get a list of domains that have a lets encrypt certificate (possible renew)
         */
-       private static function renewDomains()
+       private static function renewDomains($check = false)
        {
                $certificates_stmt = Database::query("
                        SELECT
@@ -437,6 +437,13 @@ class AcmeSh extends \Froxlor\Cron\FroxlorCron
                ");
                $renew_certs = $certificates_stmt->fetchAll(\PDO::FETCH_ASSOC);
                if ($renew_certs) {
+                       if ($check) {
+                               foreach ($renew_certs as $cert) {
+                                       if (self::checkFsFilesAreNewer($cert['domain'], $cert['expirationdate'])) {
+                                               return true;
+                                       }
+                               }
+                       }
                        return $renew_certs;
                }
                return array();

 

Share this post


Link to post
Share on other sites
  • 0

Nein, funktioniert immer noch nicht. Ich habe vor der Entscheidung ein var_dump($renew_domains) eingefügt und dort wird mir nach wie vor die komplette Liste aller Domains incl. der Keys ausgegeben - auch nach dem Patch.

 

Könnte hier dran liegen:

private static function renewDomains($check = false)

damit ist $check immer false und das Ergebnis immer so wie vorher - oder nicht?

Share this post


Link to post
Share on other sites
  • 0

jau, nach der for schleife noch ein return false 😛

kommt sofort in git, sekunde

Share this post


Link to post
Share on other sites

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