CRLs bereinigen
Es kann von Zeit zu Zeit sinnvoll sein, die heruntergeladenen CRLs (Certificate Revocation List) zu bereinigen. Das certs-Paket ab Version 1.5.1 ist von Jürgen Edner weiter optimiert worden und lädt nun deutlich weniger CRLs als früher herunter. Andererseits können sich auch durch eigene "Spielereien" mit Zertifikaten CRLs anhäufen.
Diese Anleitung gilt fĂĽr das certs-Paket ab Version 1.5.1.
Im Folgenden sind die nacheinander auszufĂĽhrenden Schritte dargestellt:
Stoppen des at-Daemons
# /usr/sbin/service stop atd.service
Löschen der CRL-AT-Jobs
# /var/install/bin/certs-update-crl --deletejobs
Löschen der CRLs und der CRL-Liste
# cd /var/certs/ssl/crl # rm * # cd .. # cp certs-update-crl-list.std certs-update-crl-list
Neuerstellung des CRL fĂĽr die eigene CA
Wer im certs-Paket eine eigene CA angelegt hat, muss nun das lokale CRL neu erzeugen. Ob eine eigene CA existiert, erkennt man am Vorhandensein der Datei /var/certs/ssl/certs/ca.pem.
# /var/install/bin/certs-create-tls-certs crl Certificate generation Parameters = - change/set certificate type: ca = - change/set certificate name: ca Certificate Authority (CA) (sha384) (2048bits) 3 - [âś“] create a CA key 4 - [âś“] create a self-signed CA certificate (valid until: xx.xx.xxxx) 5 - [âś“] create .pem CA certificate and copy it to /usr/local/ssl/certs 6 - show CA key and certificate file location 7 - revoke a certificate 8 - update revocation list Please select (3-8), change (b)its/(h)ash, (e)mail certs, (q)uit? Sind die Punkte 3-5 abgehakt, ist das lokale CA korrekt erstellt und nun muss 8 aufgerufen werden: Please select (3-8), change (b)its/(h)ash, (e)mail certs, (q)uit? 8 Update revocation list now (y/n) [n]? y You have to enter the following data: 1. Select CRL due days. 2. Passphrase of your CA key. Press ENTER to continue 1 - use default CRL validity: 30 days 2 - set individual CRL validity Please choose desired option (1-2) [1]? Wenn eine eigene GĂĽltigkeitsdauer gewĂĽnscht ist, ist nun 2 und die GĂĽltigkeitsdauer sonst 1 anzugeben: Please choose desired option (1-2) [1]? 2 Please enter number of validity days or hours (e.g. 8h) [30]? 60 Nun ist abschlieĂźend das Passwort fĂĽr das lokale CA einzutippen: Using configuration from /usr/local/ssl/openssl.cnf Enter pass phrase for /usr/local/ssl/private/ca.key: meinpasswort updating hashes '/usr/local/ssl/crl' ... Nun beenden wir den Assistenten mit q: Please select (3-8), change (b)its/(h)ash, (e)mail certs, (q)uit? q
Download der CRLs und Anlegen der AT-Jobs
# /var/install/bin/certs-update-crl --all
Starten des at-Daemons
# /usr/sbin/service start atd.service
Zusammenfassung aller Schritte
# /usr/sbin/service stop atd.service # /var/install/bin/certs-update-crl --deletejobs # cd /var/certs/ssl/crl # rm * # cd .. # cp certs-update-crl-list.std certs-update-crl-list # /var/install/bin/certs-create-tls-certs crl # /var/install/bin/certs-update-crl --all # /usr/sbin/service start atd.service
Skriptvorschlag zur automatischen CRL-Bereinigung
Das folgende Skript fasst die notwendigen Schritte zur CRL-Bereinigung zusammen, wobei der Schritt Neuerstellung des CRL fĂĽr die eigene CA ausgelassen wurde, da das Skript versucht, das CRL der eigenen CA zu erhalten, was allerdings nur gelingt, wenn dieses nach dem Schema <full_qualified_hostname>-crl.pem und <full_qualified_hostname>-der.pem benannt ist.
#!/bin/sh # CRL_cleanup atdrunning=no (/usr/sbin/service status atd.service | grep "(running) since") && atdrunning=yes if [ "${atdrunning}" = "yes" ] then /usr/sbin/service stop atd.service fi hostname=$(hostname -f) echo | /var/install/bin/certs-update-crl --deletejobs echo cd /var/certs/ssl/crl crls=$(ls) for f in ${crls} do if echo ${f} | grep -vq "^${hostname}" then rm ${f} fi done cd .. cp certs-update-crl-list.std certs-update-crl-list echo | /var/install/bin/certs-update-crl --all echo if [ "${atdrunning}" = "yes" ] then /usr/sbin/service start atd.service fi