CA Certificate Problem [SOLVED]

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
DiscoBoy
Beiträge: 162
Registriert: 19.11.2004 18:17:34

CA Certificate Problem [SOLVED]

Beitrag von DiscoBoy » 03.06.2007 12:15:19

Ich habe mir für OpenVPN eine eigenes CA Certificate ausgestellt, und mit diesem dann ein weiteres Zertifikat für den VPN Server. Dies lief auch, bis ich weitere Dienste verschlüsseln wollte, und daher das CA C. gelöscht hab, um nochmal von vorne alles sauber geplant zu machen....

Nun allerdings scheint es mir nicht mehr zu gelingen funktionierende Zertifikate herzustellen. OpenVPN meldet jedesmal:
Sun Jun 03 12:09:15 2007 VERIFY ERROR: depth=1, error=self signed certificate in certificate chain: /C=DE/ST=YYYnet/L=YYYnet/O=YYYnet/OU=YYYnet/CN=root@
server1
Auch LDAP mag nicht starten, wohl wegen des selben Fehlers....

Ich habe zum Löschen der CA daher folgende Dateien gelöscht:
  • /private/ca.key
    /certs/ca.pem
    serial
    index.txt
...und zum Neuanlegen meiner CA und weiterer Zertifikate bin ich so vorgegangen:
--------------------------
Certification Authority
--------------------------

Als erstes benötigt man einen 2048 Bit langen RSA Private Key für die Certification Authority:

openssl genrsa -aes256 -out /etc/ssl/private/ca.key 2048

Der zweite Schritt generiert das selbst unterzeichnete Root CA-Zertifikat, cacert.pem, mit einer Gültigkeitsdauer von zehn Jahren:

openssl req -new -x509 -days 3650 -key /etc/ssl/private/ca.key -out /etc/ssl/certs/ca.pem -set_serial 1

------------
Certicates
------------

Wir erstellen ein Inhaltsverzeichnis für die Zertifikate und numerieren Sie durch, damit keine doppelten Zertifikate vergeben werden erstellen wir eine CRL (certificate revocation list, Cert-Speerliste).

touch /etc/ssl/index.txt && echo "01" > /etc/ssl/serial

Um ein von der Root-CA (bzw. untergeordneten CA's) signiertes Zertifikat zu erhalten, wird zuerst ein Certificate Signing Request erzeugt und den zugehörigen Key.

openssl req -new -newkey rsa:2048 -out /etc/ssl/certs/certificate.csr -nodes -keyout /etc/ssl/private/certificate.key -days 3650

Jetzt können wir das Zertifikat erstellen.

openssl x509 -req -in /etc/ssl/certs/certificate.csr -out /etc/ssl/certs/certificate.pem -CA /etc/ssl/certs/cacert.pem -CAkey /etc/ssl/private/ca.key -CAserial /etc/ssl/serial -days 3650

Das vorher erzeugte CSR kann gelöscht werden.

/etc/ssl/certs/certificate.csr

Zur Sicherheit sollten alle Keys nur von root lesbar sein.

chmod 0700 /etc/ssl/private/*
Mach ich da irgendeinen Fehler? Oder muss ich die CA evtl. mit openssl ca -revoke /etc/ssl/certs/xxx.pem löschn, oder kann ich mit irgendweinem Kommando die Funktionalität meiner CA überprüfen?[/list]
Zuletzt geändert von DiscoBoy am 03.06.2007 13:17:48, insgesamt 1-mal geändert.

DiscoBoy
Beiträge: 162
Registriert: 19.11.2004 18:17:34

Beitrag von DiscoBoy » 03.06.2007 12:27:07

Noch was...
openssl verify /etc/ssl/certs/ca.pem
liefert mir folgendes:
/etc/ssl/certs/ca.pem: /C=DE/ST=YYYnet/L=Slavenet/O=YYYnet/OU=YYYnet/CN=root@server1
error 18 at 0 depth lookup:self signed certificate
[/quote]

DiscoBoy
Beiträge: 162
Registriert: 19.11.2004 18:17:34

Beitrag von DiscoBoy » 03.06.2007 13:19:22

Der Check schlägt zumindest nicht mehr fehl, wenn man einen symbolischen Link auf das CA-Zertifikat erstellt, der als Namen den Hash-Code des Zertifikats + eine angehängte Null enthält:
ln -s ca.pem /etc/ssl/certs/`openssl x509 -hash -noout -in certs/ca.pem`.0

joomart
Beiträge: 112
Registriert: 21.01.2003 14:38:17
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Bayern
Kontaktdaten:

Beitrag von joomart » 03.11.2007 21:22:35

Das mit dem Hash-Code war der richtige Ansatz. Dafür gibt es im Paket openssl sogar einen Befehl:

Code: Alles auswählen

c_rehash /etc/ssl/certs
Dann werden alle Hash-Symlinks aktualisiert und openssl findet alle Zertifikate. :)
Ciao, Joo
------
zu meinen Debianpaketen: http://www.joonet.de/debian/

Antworten