[Eisfair] certs: Probleme mit parallel ausgefc3bchrten at-Jobs

Marcus Roeckrath marcus.roeckrath at gmx.de
Fr Okt 6 19:04:24 CEST 2017


Hallo Jürgen,

Juergen Edner wrote:

>> Die /var/certs/ssl/certs-update-crl.joblist umfasst nur noch diese
>> wenigen Einträge, obwohl es wirklich 37 at-Jobs sind.
>> 
>> eis # cat certs-update-crl-joblist
>> 493|2017-10-09 07:16|2017-10-05 07:13
>> http://crl.comodoca.com/SecureCertificateServices.crl
>> 495|2017-10-09 07:16|2017-10-05 07:13
>> http://crl.comodoca.com/AAACertificateServices.crl
>> 494|2017-10-09 07:16|2017-10-05 07:13
>> http://crl.netsolssl.com/NetworkSolutionsCertificateAuthority.crl
>> 496|2017-10-09 07:16|2017-10-05 07:13
>> http://crl.usertrust.com/UTN-USERFirst-Hardware.crl
>> 497|2017-10-09 07:16|2017-10-05 07:13
>> http://crl.comodoca.com/TrustedCertificateServices.crl
>> 498|2017-10-12 05:06|2017-10-05 05:03|https://www.cacert.org/revoke.crl
>> 499|2017-10-09 17:03|2017-10-04 17:00
>> http://crl.serverpass.telesec.de/rl/TeleSec_ServerPass_DE-2.crl
> 
> dies verstehe ich nicht ganz. Bei mir existieren 15 CRL-Einträge:

In /var/spool/cron/atjobs gibt es 37 Jobs vom Certs-Paket 

> # grep "^http" /usr/local/ssl/certs-update-crl-list  | wc -l
> 15

eis # grep "^http" /usr/local/ssl/certs-update-crl-list  | wc -l
38

Ist einer mehr als at-Jobs vorhanden; habe  den fehlenden Job auch schon
identifiziert (der macht wohl zeitweise Erreichbarkeitsprobleme).

> Wenn ich dann prüfe wie viele at-jobs existieren finde ich ebenfalls
> exakt die gleiche Anzahl an Einträgen vor:

Das sieht ja - bis auf die Einser Diffenrenz - gut aus.

Es gibt aber auch die /var/install/certs-update-crl-joblist Datei und genau
diese enthält nur noch 8 Zeilen! (s. o.)

Wir du an den Mails ds at-Daemons siehst, spielt die dabei auch eine Rolle,
weil sie neu erzeugt wird.

Es laufen bei mir Jobs parallel, weil ich sehr viele Zertifikate installiert
habe, aber das ausführende Skript ist nicht für parallele Ausführung
gedacht, denn sie "pfuschen" dann auch parallel an gleichen Dateien rum.

>> Der Fall dass es zur parallelen Ausführung von crl-at-Jobs kommt, tritt
>> bei mir regelmäßig auf:
>> 
>> 475     Mon Jan  1 01:02:00 2018 a root
>> 480     Mon Jan  1 01:02:00 2018 a root
>> 
>> 493     Mon Oct  9 07:16:00 2017 a root
>> 494     Mon Oct  9 07:16:00 2017 a root
>> 495     Mon Oct  9 07:16:00 2017 a root
>> 496     Mon Oct  9 07:16:00 2017 a root
>> 497     Mon Oct  9 07:16:00 2017 a root
>> 
>> 476     Sun Dec 31 15:25:00 2017 a root
>> 478     Sun Dec 31 15:25:00 2017 a root
> 
> Wenn ich dann schaue zu welchem Zeitpunkt diese ausgeführt werden, sieht
> es so bei mir aus:
> 
> # /var/install/bin/certs-update-crl --listjobs | grep "' found"

Der fragt doch nur certs-update-crl-joblist ab und zeigt daher bei mir auch
nur:

eis # /var/install/bin/certs-update-crl --listjobs | grep "' found"
- (2017-10-09 07:16) job '493' found.
- (2017-10-09 07:16) job '494' found.
- (2017-10-09 07:16) job '495' found.
- (2017-10-09 07:16) job '496' found.
- (2017-10-09 07:16) job '497' found.
- (2017-10-09 17:03) job '499' found.
- (2017-10-10 17:03) job '500' found.
- (2017-10-12 05:06) job '498' found.

Im atjobs-Verzeichnis stehen viele weitere (korrekterweise), welches auch
durch certs-update-crl-list korrekt abgebildet wird.

>> Es ist in der Logik des Paketes ja etwas drin, was die parallele
>> Ausführung von Jobs verhindern soll, aber das scheint irgendwie nicht so
>> richtig zu greifen.
> 
> Dies ist korrekt, vor dem Anlegen eines neuen at-Jobs prüfe ich,
> ob es bereits einen gleichen Eintrag in

Was heißt gleicher Eintrag?

Gleiche URL, dann braucht der Job nur aktualisiert werden - wenn überhaupt.

IMHO muss sichergestellt werden, dass nicht zweimal

/var/install/bin/certs-update-crl --quiet --single ...

zur gleichen Zeit ausgeführt, was ja genau dann passiert, wenn, wie bei mir
bis zu 5mal zur gleichen Zeit ein CRL-Download passiert.

> /usr/local/ssl/certs-update-crl-joblist gibt.
> Um der Sache auf den Grund zu gehen solltest Du einmal alle
> existierenden at-Jobs mittels des folgenden Befehls löschen:

Die fünf um 07:16 des 9.10. zur Ausführung anstehenden Jobs betreffen
folgende CRLs:

http://crl.comodoca.com/SecureCertificateServices.crl
http://crl.comodoca.com/AAACertificateServices.crl
http://crl.netsolssl.com/NetworkSolutionsCertificateAuthority.crl
http://crl.usertrust.com/UTN-USERFirst-Hardware.crl
http://crl.comodoca.com/TrustedCertificateServices.crl

Damit es zur gleichzeitigen Aktualisierung kommt, müssen die also auch das
gleiche Ablaufdatum haben.

> /var/install/bin/certs-update-crl --deletejobs
> 
> Danach existiert zumindest bei mir keine Datei
> /usr/local/ssl/certs-update-crl-list mehr.
> 
> Anschließend lege ich mittels des folgenden Befehl wieder neue Einträge
> an. Doppelte Eintröge sollte es hier nicht geben:
> 
> /var/install/bin/certs-update-crl --createjobs
> 
> Falls danach bei Dir erneut doppelte Einträge vorkommen sollten, lösche
> die at-Jobs bitte erneut, entferne das Kommentarzeichen vor Zeile 50 um
> einen Debug-Trace zu erstellen und lasse anschließend die Jobs wieder
> neu erstellen.

Ich habe keine doppelten Einträge, sondern gleichzeitige
CRL-Aktualisierungen verschiedenen CRLs, die aufgrund des nicht für
parallelen Ausführung ausgelegten Skriptes zu dieser Merkwürdigkeit führen.

Ansonste kann ich aber am Wochenden nochmal alles bereinigen und den
Debug-Modus einschalten.

Auf meinem Schulserver gibt es keine Jobs zur exakt gleichen Zeit, aber auch
deutlich weniger Zertifikate.

Hier sieht auch die certs-update-joblist korrekt aus, entspricht der Zahl
angelegter at-Jobs.

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair