Anmelden

View Full Version : Zertifikatskette im DCM



Kurmas Zeschlon
07-07-05, 13:15
Hallo Forum,

wir sind dabei, in unserem Unternehmen eine Anbindung zu einem Partner über SSL zu realisieren. Die Socket-Programmierung ist in RPG IV über APIs realisiert, ebenso soll dies mit der SSL-Verschlüsselung geschehen.

Das Problem ist, daß der SSL-Handshake nicht funktioniert (vorher klappt Socket(), SSL_Init() und Connect()).

Ich vermute, daß wir die Zertifikate des "gegnerischen" Servers nicht vernünftig eingebaut haben.

Unser Partner hat uns drei Zertifikate als Zertifikatskette geschickt, aber ich habe keine Idee, wo ich die Zertifikate der übergeordneten CAs im DCM anmelde.

Will ich das Serverzertifikat im Zertifikatsspeicher *SYSTEM importieren, meldet DCM
"Kein Anforderungsschlüssel für das Zertifikat gefunden. Wenn Sie das signierte Zertifikat empfangen wollen, müssen Sie denselben Zertifikatsspeicher verwenden, der bei der Zertifikatsanforderung benutzt wurde. Wenn es sich um ein Zertifikat der Zertifizierungsinstanz handelt, müssen Sie die Funktion zum Importieren einer Zertifizierungsinstanz verwenden."

Wie kann ich mit dem DCM die drei Zertifikate aus der "Zertifikatskette" so einbauen, daß das unterste Zertifikat akzeptiert wird? In den IBM-Dokus finde ich leider mangels Grundlagenwissen nichts direkt dazu.

Vielen Dank für jeden Hinweis.

Gruß
K

Kurmas Zeschlon
08-07-05, 10:46
Hi, ich bin's nochmal,

inzwischen habe ich im DCM die beiden übergeordneten Zertifikate der CAs importieren können und diese tauchen nun in der Liste der Zertifizierungsinstanzen als "aktiviert" auf.

Leider klappt der Import des Serverzertifikats trotzdem nicht. Die Fehlermeldung ist dieselbe wie zuvor.

Gruß
K

Muchi
12-07-05, 07:36
Wieso erstellt Du nicht selber ein Zertifikat und eine Zertifizierungsinstanz. Wenn Du den DCM installierst hast, geht das sehr schnell. Hast Du auch die Lizenzprogramme 5722-AC3 und CE3 installiert?

Gruß Michael

Kurmas Zeschlon
18-07-05, 15:05
Danke für die Antwort, aber ich denke, wir müssen schon die Zertifikate unseres Lieferanten nutzen, damit die Anbindung klappt.

Inzwischen konnte ich auch das dritte Zertifikat als CA installieren, aber SSL_Init() liefert jetzt den Returncode -97 (SSL_ERROR_BAD_CIPHER_SUITE).

Übrigens hat der SSL_Handshake funktioniert, nachdem die beiden anderen Zertifikate installiert waren. Das PGM hakte dann erst beim SSL_Write().

Gruß
K.

Kurmas Zeschlon
21-07-05, 09:06
Es gibt wieder Neues.

Wir sind inzwischen wieder so weit, daß der SSL_Handshake funktioniert.

Beim SSL_Write() wird stets der Returncode 0 geliefert.

Wir vermuten die Fehlerquelle an einer von zwei Stellen:

1) Das Zertifikat, das von der entfernten Maschine kommt, enthält einen Verweis auf den DNS-Namen des Servers (das ist sicher). In den SSL-Funktionen verwenden wir aber nur die IP-Adresse. Vermutung: Das Schreiben wird abgelehnt, weil das Zertifikat nicht zum Namen der angesprochenen Seite paßt. Solche Fehlermeldungen sieht man ja auch gelegentlich im Webbrowser.

2) Wir haben ein Programm, das lediglich einen Socket erzeugt und dann schreiben wir einfach mit Write(). Seltsamerweise werden vorne immer zwei Byte mehr übertragen, als in der Variablen stehen, auf die der übergebene Pointer zeigt. Wenn dies auch beim SSL_Write() geschieht, könnte der entfernte Server unsere Anfrage wegen ungültiger Zeichen abweisen.

Wir haben bereits Kontakt mit dem IBM-Support in der Sache, aber leider ist noch keine Lösung dabei herausgekommen.

Schöne Grüße
K.