Programmgesteuert hinzufügen eines vertrauenswürdigen cert in Java
Ich die Verwendung von SSL für die Kommunikation zwischen zwei Komponenten, geschrieben in Java. Ich kann nicht verwenden Sie ein CA, also muss ich selbst Unterschreiben alles. Leider bedeutet dies, dass, wenn ich versuche, handshake, bekomme ich eine SunCertPathBuilderException. Ich kann meine eigenen X509TrustManager, dass nur vertraut über alles, aber diese Art von Niederlagen der Zweck des habens ein signiertes cert.
Möchte ich, beim ersten herstellen der Verbindung, um den Benutzer auffordern, die mit "SSL-handshake mit cert ungültig. Add cert speichern?" oder so etwas, also konnten Sie das hinzufügen für Sie zu Ihrem Zertifikatspeicher, wie web-Browser auf Websites, die ungültige Zertifikate. Ich kann hier viele Beispiele online-zum hinzufügen eines cert zu den Informationsspeicher über die Kommandozeile, aber ich kann nicht herausfinden, wie es programmatisch. Gibt es eine Möglichkeit, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist möglich.
Gibt es einige code hier, die ich verwendet habe, vor. Ich hatte zu ändern, um zu tun, was ich wollte, und ich vermute, dass Sie auch, aber das sollte Euch in der Nähe -, die Sie nicht importieren möchten, einen Schlüssel, so dass Sie theoretisch in der Lage sein sollten, die Dinge zu vereinfachen. In jedem Fall können Sie eine Vorstellung bekommen, was Sie brauchen.
JDK JavaDoc für java.Sicherheit.KeyStore ist ziemlich nützlich, auch.
Warum gehst du nicht erstellen Sie Ihre eigene ZERTIFIZIERUNGSSTELLE und melden Sie Ihre Zeugnisse mit, dass? Dann alles, was Sie würde tun müssen, ist installieren Sie das CA-eigenen Zertifikats auf den Maschinen, und jedes Zertifikat von dieser ZERTIFIZIERUNGSSTELLE signierte validieren würde.
Warum würden Sie brauchen, um dies zu tun, werden Sie nicht die überprüfung, dass der client, wer Sie sagen, Sie sind Sie sind nur mit Hilfe der Zertifikate verschlüsseln die Kommunikation, so dass ein benutzerdefinierter trust-manager, der es erlaubt alle certs ist alles, was Sie brauchen.
Was du fragst ist möglich und aus der Erinnerung auch mit einem benutzerdefinierten trust-manager die Zertifikate überprüfen, und speichern Sie Sie in die keystore. Ich kann mich nicht erinnern, die details, aber zumindest wissen Sie, es ist möglich, es zu tun.