[Eisfair_dev] certs v1.3.3 stable für eisfair-1/2*

Marcus Roeckrath marcus.roeckrath at gmx.de
Mo Apr 14 21:55:28 CEST 2014


Hallo,

Juergen Edner wrote:

> ich habe eine aktualisierte Version das certs-Paketes auf Pack-Eis
> abgelegt. Das Paket sollte in spätestens einer Stunde zur Installation
> verfügbar sein. (*nicht explizit auf eisfair-2 Systemen getestet)

Wer die "lästigen" Dubletten im certs-Verzeichnis loswerden möchte, dem
möchte ich im folgenden eine Schritt-für-Schritt-Anleitung anbieten.

Eine WICHTIGE Anmerkung vorweg:

Es gibt in /usr/local/ssl/certs eventuell Zertifikatsduplikate die NICHT
gelöscht werden dürfen; es handelt sich um die lokalen Zertifikate des
eigenen Servers, z. B.

pure-ftpd.pem
exim.pem
ipop3d.pem
imapd.pem
apache.pem

(eventuell weitere), die oft als Kopie eines Zertifikats oder als Link
angelegt wurden, statt für jeden lokalen Dienst ein eigenes Zertifikat
anzulegen.

Und natürlich auch nicht das lokale ca.pem.

Bevor man sich ans Werk begibt, erstmal in Ruhe durchlesen.

Nun gehts los:

1. Update auf diese neue Version des certs-Paketes

2. Download des Mozilla-CA-Bundles über den Menüpunkt "Download ca
certificate bundle" im certs Menu.

3. Vorsichtige Naturen machen nun eine Kopie des
Verzeichnisses /usr/local/ssl/certs.
 

4.

cd /root
/usr/bin/ssl/c_rehash /usr/local/ssl/certs 2> certdupes

Die Datei /root/certdupes enthält nun die Namen der Zertifikate, die nicht
rehasht wurden, weil ein gleiches Zertifikat anderen Namens schon gehasht
wurde, z.B.:

WARNING: Skipping duplicate certificate thawte.pem
WARNING: Skipping duplicate certificate thawte.pem
WARNING: Skipping duplicate certificate 12fa5cd4.pem
WARNING: Skipping duplicate certificate 12fa5cd4.pem

Jedes Duplikat taucht hierbei zweimal in der Liste auf.

Von diesen Zertifikaten löschen wir in einem ersten Schritt nur die
Zertifikate, die genau 8 Zeichen vor dem "." haben und diese Zeichen sind
0-9 und a-f, also im obigen Beispiel 12fa5cd4.pem aus dem
Verzeichnis /usr/local/ssl/certs.

thawte.pem passt nicht auf das Namensschema wird also nicht gelöscht,
allerdings wird es noch ein weiteres Zertifikat gleichen Inhalts geben,
dass wir möglicherweise loswerden wollen (Schritt 5).

Anschliessend rehashen wir erstmal wieder:

/usr/bin/ssl/c_rehash /usr/local/ssl/certs

rm /root/certdupes

5.

Nun sind noch die übrigen Duplikate an der Reihe, die zwar im Schritt 3 auch
als Duplikate erkannt wurden, von denen wir aber das andere Gegenstück
entfernen wollen.

Bei diesem Schritt kann es beim Mailversand und Mailabholung zu temporären
Problemen kommen, da kurzzeitig die Hash-Links auf nicht mehr existierende
verweisen können - einfach ignorieren.

cd /root

Folgender Code in eine Datei (z. B. finddupes) im Verzeichnis des Users root
speichern und mit chmod 0755 ausführbar machen.

#!/bin/sh
files=`ls /usr/local/ssl/certs/*.pem`
for f in $files ; do
  mdsum=`openssl x509 -in $f -noout -fingerprint -md5`
  echo "${mdsum} : ${f}"
done

Nun folgende Befehlszeile ausführen:

./finddupes | sort > certdupes

certdupes enthält nun z. B.:

MD5
Fingerprint=18:98:C0:D6:E9:3A:FC:F9:B0:F5:0C:F7:4B:01:44:17 : /usr/local/ssl/certs/certSIGN_ROOT_CA.pem
MD5
Fingerprint=1B:2E:00:CA:26:06:90:3D:AD:FE:6F:15:68:D3:6B:B3 : /usr/local/ssl/certs/e1fa5d90.pem
MD5
Fingerprint=1B:2E:00:CA:26:06:90:3D:AD:FE:6F:15:68:D3:6B:B3 : /usr/local/ssl/certs/ePKI_Root_Certification_Authority.pem
MD5
Fingerprint=1D:35:54:04:85:78:B0:3F:42:42:4D:BF:20:73:0A:3F : /usr/local/ssl/certs/AddTrust_External_Root.pem
MD
MD5
Fingerprint=AA:8E:5D:D9:F8:DB:0A:58:B7:8D:26:87:6C:82:35:55 : /usr/local/ssl/certs/1af45ce.pem
MD5
Fingerprint=AA:8E:5D:D9:F8:DB:0A:58:B7:8D:26:87:6C:82:35:55 : /usr/local/ssl/certs/Juur-SK.pem
MD5
Fingerprint=AA:8E:5D:D9:F8:DB:0A:58:B7:8D:26:87:6C:82:35:55 : /usr/local/ssl/certs/Juur.pem
MD5
Fingerprint=AA:C6:43:2C:5E:2D:CD:C4:34:C0:50:4F:11:02:4F:B6 : /usr/local/ssl/certs/D-TRUST_Root_Class_3_CA_2_EV_2009.pem

Hier suchen wir nun die Zertifikate, die den gleichen Fingerprint aufweisen;
wegen des sort-Befehls stehen die immer untereinander.

Von den Zertifikaten gleichen Fingerprints brauchen wir nur jeweils eines.

Wenn eines davon einen aussagekräftigen Namen das andere aber wieder nur aus
genau 8 Zeichen (0-9, a-f) besteht, ist die Sache klar:

e1fa5d90.pem
ePKI_Root_Certification_Authority.pem

Hier wird e1fa5d90.pem aus /usr/local/ssl/certs gelöscht.

Bei den drei gleichen Zertifikaten

1af45ce.pem
Juur-SK.pem
Juur.pem

kann 1af45ce.pem aus /usr/local/ssl/certs gelöscht werden.

Zwischen Juur-SK-pem und Juur.pem entscheiden wir uns nun anhand der
Dateiliste des Mozillabundles (/usr/local/ssl/mozillabundle.txt).

Die Datei Juur-SK.pem taucht in der Bundleliste auf und bleibt stehen,
Juur.pem wird gelöscht.

Gibt es keinen der Namen in der Mozilla-Bundleliste entscheidet man sich
nach persönlichen Geschmack für oder gegen einen Dateinamen. Es handelt
sich hierbei um Zertifikate, die selbst mal downgeloadet wurden oder aus
dem alten ca-Bundle stammen. Aber auch von diesen reicht eines.

Nun wieder rehashen:

/usr/bin/ssl/c_rehash /usr/local/ssl/certs

6. Im certs-Menu rufen wir nun noch den Punkt "Update revocation list(s)"
auf (der braucht schon eine Weile - Ruhe bewahren).

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair_dev