Beim Prüfen der SSL Schlüssel mit openssl-vulnkey bin ich auf
/etc/univention/ssl/univention-directory-manager.dt.minati.local/private.key
gestossen, der noch als kompromittiert geführt wird.
Wie aktualisiere ich diesen richtig, ohne mein UCS abzuschiessen?
Zum verwalten der Zertifikate gibt es unter UCS das Programm univention-certificate.
Mit folgendem Kommando legt man ein neues Zertifikat an (bzw. überschreibt ein bestehendes).
univention-certificate new -name CERTNAME -days DAYS
Detaillierte Anleitungen zum Erneuern der SSL-Keys bzw. SSL-Zertifikate finden Sie hier:
Das erneute Erstellen des Zertifikates ändert nicht die Datei private.key.
Diese hat noch das gleiche Datum wie vorher und zeigt bei Überprüfung immer noch an, das sie compromised ist.
Das die alten verwundbaren Zertifikate noch unterhalb von /etc/univention/ssl/ucsCA/certs verfügbar sind spielt keine Rolle, oder?
In meiner Testumgebung (2.0, 2.1) wird der “private.key” erneuert.
-> ls -la /etc/univention/ssl/test.test/private.key
-rw-r-x--- 1 root DC Backup Hosts 887 2008-09-29 16:27 /etc/univention/ssl/test.test/private.key
-> univention-certificate new -name test.test -days 1000
...
Generating RSA private key, 1024 bit long modulus
..........++++++
............................++++++
...
-> ls -la /etc/univention/ssl/test.test/private.key
-rw-r-x--- 1 root DC Backup Hosts 887 2008-09-29 16:29 /etc/univention/ssl/test.test/private.key
Sollte der Schlüssel des CA Zertifikats (/etc/univention/ssl/ucsCA/private/CAkey.pem) ebenfalls kompromittiert sein, muss dieser zuerst erneuert werden (das CA Zertifikat wird benutzt um die Rechnerzertifikate zu erstellen).
Wird ein Zertifikat überschrieben oder zurückgezogen, bleiben die Dateien unter /etc/univention/ssl/ucsCA/certs erhalten, werden aber nicht mehr berücksichtigt. Es wir lediglich die Datei /etc/univention/ssl/ucsCA/index.txt angepasst, in der der Status des Zertifikats hinterlegt ist (V=Valid, R=Revoke).
# zeige vorhandene Zertifikate
-> univention-certificate list
4F test.test
# Status des Zertifikates
-> more /etc/univention/ssl/ucsCA/index.txt | grep 4F
V 100929142902Z 4F unknown /C=DE ...
# Zertifikat überschreiben
-> univention-certificate new -name test.test -days 1000
-> univention-certificate list
51 test.test
# Status des alten und des neuen Zertifikates
-> more /etc/univention/ssl/ucsCA/index.txt
...
R 100929142902Z 080929145040Z 4F u
V 100929145041Z 51 unknown /C=DE
...
wie Sie in diesem Fall genau vorgehen müssen, ist in der UCS Dokumentation “SSL Infrastruktur unter UCS” ausführlich beschrieben. Das Erneuern des Root-Zertifikats wird im Kapitel 3.3 “Erneuern des UCS-Root-Zertifikats” behandelt. Im folgenden finden Sie den direkten Link zur Dokumentation: http://www.univention.de/fileadmin/download/dokumentation/ucs-ssl.pdf
sie beziehen sich sicherlich auf diesen Teil der Dokumentation:
[quote]3. Ein neues Root-Zertikat mit einem Gültigkeitszeitraum von 1000 Tagen wird durch
cd /etc/ univention /ssl/ ucsCA
openssl x509 -in CAcert .pem -out NewCAcert .pem
-passin file etc / univention /ssl/ password
-days 1000 -signkey private / CAkey .pem
erzeugt (hier wurde die relative lange Befehlszeile des openssl-Aufrufs der Lesbarkeit
halber durch Backslash-Zeichen auf mehrere Zeilen umgebrochen). Dieses kann
dann durch den Befehl
mv NewCAcert .pem CAcert .pem
an die Stelle des alten UCS-Root-Zertifikats verschoben werden.[/quote]
Das habe ich versucht, allerdings ändert der Befehl nichts an der Datei private/CAkey.pem, diese wird lediglich eingelesen.
Wohlgemerkt: CAkey.pem ist kompromitiert, nicht CAcert.pem
um das CAkey.pem und abhängige Zertifikatsdateien neu zu erzeugen, gehen Sie bitte wie folgt vor:
[ul]
[li] Verschieben Sie das Verzeichnis /etc/univention/ssl:
mv /etc/univention/ssl /etc/univention/ssl.old
[li] Erzeugen Sie eine neue SSL-Grundstruktur sowie ein neues Zertifikat für den DC-Master:
apt-get install --reinstall univention-ssl
[/li]
[li] Setzen Sie die Dateiberechtigungen:
chgrp 'DC Backup Hosts' -R /etc/univention/ssl/openssl.cnf /etc/univention/ssl/password /etc/univention/ssl/ucsCA/
chgrp 'DC Slave Hosts' /etc/univention/ssl/ucsCA/CAcert.pem
[/li]
[li] Kopieren Sie alle Dateien und Verzeichnisse, abgesehen von ucsCA, password, openssl.cnf und dem Verzeichnis welches nach dem FQDN des DC-Master Servers benannt ist aus /etc/univention/ssl.old nach /etc/univention/ssl (beachten Sie das dabei die Berechtigungen erhalten bleiben).[/li]
[li] Führen Sie die Schritte ab “Erneuerung aller Rechnerzertifikate:” aus der Beschreibung “Erneuern der SSL-Zertifikate” unter Erneuern der SSL-Zertifikate aus um die Rechnerzertifikate den neuen Gegebenheiten anzupassen.[/li][/ul]