2016-06-24 14 views
3

Wir entwickeln derzeit eine Java-Client-App, die über eine SSL-gesicherte Verbindung mit einem Server kommuniziert. Unser Design erfordert, dass der Server sich anhand eines vertrauenswürdigen Zertifikats gegenüber dem Client authentifiziert. Die Zertifikat-Kette sieht wie folgt aus:Importieren von Zertifikaten in Keystore, Zertifikatskette ist null

<SOME CA Root certificate> 
+- <SOME CA Intermediate certificate> 
    +- <Our companies certificate> 

Anfangs dachten wir, dies einfach zu sein: Erzeugen Sie einen beliebigen leeren Schlüsselspeicher, Import CA-Root-CA-Zwischen und schließlich unser eigenes Zertifikat, verteilen diese Schlüsselspeicher unter den Kunden und fertig. Dazu verwendeten wir PEM-Dateien , die den signierten öffentlichen Schlüssel enthielten. Beim Import des CA-Root-Keys haben wir dem Keystore mitgeteilt, dass er diesen als vertrauenswürdig einstuft.

Jeder Zugriff auf keystore.getCertificateChain gibt jedoch null zurück.

Wir haben überprüft, über keytool und KeyStoreExplorer, dass alle Zertifikate sind in dem Schlüsselspeicher als erwartet (sie sind) und auch, dass die Schlüssel-Kennungen des jeweiligen Faches und autoritätsSchlüsselSpiel (sie tun). Wir auch dafür gesorgt, dass die Importe in der richtigen Reihenfolge vorgenommen wurden: zuerst CA, dann Zwischenprodukt, dann unser Unternehmen Zertifikat.

Wir gingen in unsere eigenen Firmen Website (wo firefox sagt, ist das Zertifikat gut) und heruntergeladen die gesamte Zertifikatskette (als pem) von dort auszuschließen, dass die ursprünglichen pem-Dateien beschädigt sind, noch nichts Änderungen.

Wo sind wir falsch gelaufen? Müssen wir die Zertifikatskette explizit festlegen? Wie können wir Details erhalten, welcher Schritt innerhalb getCertificateChain schlägt fehl? Wie ?

Antwort

2

Sie müssen das Stammzertifikat der Kette als vertrauenswürdiges CA-Zertifikat importieren. Nicht die ganze Kette. Und KeyStore.getCertificateChain() gilt nur für private Schlüsseleinträge, die dies nicht ist.

+0

Vielen Dank, das hat sehr geholfen! Deshalb konnte ich keine Lösung finden – Nina