SSL-Zertifikat erstellen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

SSL-Zertifikat erstellen

Beitrag von McAldo » 10.10.2006 23:50:10

Hallo

Ich habe nun eine Menge Howtos zum erstellen von SSL-Zertifikaten gelesen, nun bin ich verwirrt. Die Erzeugung eines solchen Zertifikates ist nicht allzu schwer, wenn man die Scripte nutzt und nicht darüber nachdenkt. Allerdings möchte ich die Schritte auf der Konsole und mit allen nötigen Parametern machen, um auch zu verstehen was passiert. Zudem sollen nicht die Werte aus den Konfigurationsdateien übernommen werden. Ich will aber auch nicht in diesen Dateien rumbasteln.

Die meisten Howtos erklären es mit den OpenSSL-Scripten. Auch fehlen nötige Informationen zu den Schritten.

Ich suche nun also weitere Howtos, welche das genauer beschreiben. Die Erklärungen bei openssl.org sind auf die ganzen Schalter bezogen (soweit ich das gefunden habe) und helfen leider nicht, Wissenslücken zu schließen.

McAldo
Zuletzt geändert von McAldo am 20.10.2006 15:12:39, insgesamt 2-mal geändert.
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
uljanow
Beiträge: 529
Registriert: 20.09.2005 21:14:00

Beitrag von uljanow » 11.10.2006 01:53:08


Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Beitrag von McAldo » 11.10.2006 10:29:08

Das sieht ja richtig gut aus. Werde mir das heute abend mal genau anschauen, aber ich denke, es ist das was ich suche.

DANKE.


McAldo
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Beitrag von McAldo » 17.10.2006 16:34:25

Nun dachte ich, ich habs geschafft und das Zertifikat erstellt. Nur auf der Kommandozeile, ohne die SSL-Scripte. Offenbar will aber der Client das Zertifikat nicht.

Wenn ich den slapd auf der Kommandozeile starte (nicht als Daemon) und von einem Client eine ldapsearch -x Abfrage mache, kommt dieses als letzte Ausgabe beim Server:

Code: Alles auswählen

TLS trace: SSL_accept:SSLv3 flush data
tls_read: want=5, got=5
  0000:  15 03 01 00 02                                     .....
tls_read: want=2, got=2
  0000:  02 30                                              .0
TLS trace: SSL3 alert read:fatal:unknown CA
TLS trace: SSL_accept:failed in SSLv3 read client certificate A
TLS: can't accept.
TLS: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca s3_pkt.c:1052
connection_read(13): TLS accept error error=-1 id=0, closing
connection_closing: readying conn=0 sd=13 for close
connection_close: conn=0 sd=13
daemon: removing 13
conn=0 fd=13 closed
Leider fehlt mir da (noch) etwas der Durchblick um das zu verstehen.

Hat schon einer ein SSL-Zertifikat nur mit den openssl-Tools erstellt, ohne GUI und/oder Scripte? Es scheint etwas bei meinem Zertifikat zu fehlen.

McAldo
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
uljanow
Beiträge: 529
Registriert: 20.09.2005 21:14:00

Beitrag von uljanow » 17.10.2006 19:10:38

Die Meldung "Unknown CA" könnte daran liegen
1. Es gibt keine Root CA. Du also für jeden Host ein eigenes Zertifikat erstellt und dieses selbst signiert hast.
2. Du hast eine Root CA, aber beide Seiten haben nicht das Zertifikat des Root CAs

Die Vorgehensweise am Anfang wäre...
eine CA erstellen

Code: Alles auswählen

openssl req -x509 -days 3650 -newkey rsa:2048 -keyout caKey.pem -out caCert.pem
User-Zertifikate austellen und vom Root CA signieren lassen

Code: Alles auswählen

openssl req -newkey rsa:2048 -keyout userKey.pem -out userReq.pem
openssl ca -in userReq.pem -days 365 -out userCert.pem -notext -cert caCert.pem -keyfile caKey.pem
Dann die Dateien kopieren und nicht vergessen, das Zertifikat der Root Ca auf jeden user zu kopieren, so dass die Signatur der Gegenseite überprüft werden kann.

Das war ein kleiner Einblick in mein IPSEC-Setup ;)

Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Beitrag von McAldo » 20.10.2006 11:40:25

Danke, mit diesen Befehlen hat es geklappt.


McAldo
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Beitrag von McAldo » 20.10.2006 15:14:31

Hm..., ok, die Erstellung hat geklappt. Es lief alles bis zum Ende durch. Das CA-File habe ich auch auf den Clients in /etc/ssl/certs

Will ich mich aber nun mit dem Dienst verbinden, bekomme ich folgende Meldung:

additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Warum?

EDIT: Hm..., ich sehe gerade beim Aufruf mit strace:

Code: Alles auswählen

...
stat64("/etc/ssl/certs//fff8fc5d.0", 0xbff4578c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/ssl/certs/fff8fc5d.0", 0xbff4578c) = -1 ENOENT (No such file or directory)
...
Was bedeutet das? Warum soll auf diese Datei zugegriffen werden?

Nochmal EDIT: Wenn ich auf dem Client in der /etc/ldap/ldap.conf (will LDAP über SSL laufen lassen) folgendes Eintrage:

TLS_REQCERT allow

wird das Zertifikat (offenbar) nicht überprüft, die Verbindung kommt aber zu Stande.

Irgendwie hängt es wohl an dem RootCA. :-(

McAldo
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Antworten