2016-08-04 35 views
0

Ich habe eine Webstart-Anwendung Ich entwickle und teste auf meinem lokalen Computer und möchte während des Tests selbstsignierte Zertifikate verwenden. Die Anwendung verbindet sich mit meinem Rest-Service (der auch lokal mit einem selbstsignierten Zertifikat ausgeführt wird).SSL selbstsigniertes Zertifikat zum Java-Keystore für die Verwendung durch JAX-RS in der Webstart-App hinzufügen

Ich möchte, dass die Anwendung HTTPS (SSL) verwendet, um eine Verbindung zum lokalen Dienst herzustellen, der über ein selbstsigniertes Zertifikat verfügt, das sich bereits im Java-Keystore befindet.

Ich weiß, dass das Zertifikat im Keystore ist, weil die Anwendung funktioniert, wenn ich es in IntelliJ (d. H. Nicht über Webstart) ausführe. Wenn ich meinen lokalen Apache-Web-Server verwenden, öffnen Sie die JNLP-Datei aus einem Browser, und startet, dann werden die Anwendungs ​​Gläser in Ordnung überprüft und die Anwendung startet ... aber dann schlägt die SSL-Verbindung mit der viel verabscheute

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 

Ich habe verifiziert, dass dieselben Versionen von Java in Webstart und in der IDE verwendet werden (und daher den gleichen Keystore) (zum Ausführen der Anwendung, nicht der IDE selbst).

Verwendet Java Webstart einen anderen Schlüsselspeicher? Ich bin auf einem Mac. Grails ist im Backend.

Antwort

0

Java Webstart verwendet das Java Internet Plugin auf Macs. Obwohl die Versionen der JVM übereinstimmen, werden sie aus verschiedenen Verzeichnissen ausgeführt. Dies wird durch die Tatsache erschwert, dass beim Starten der Webstart-Anwendung nicht das Java-Internet-Plugin verwendet, um die Jar-Signaturen zu verifizieren !! So können Sie die certs für die Gläser in den Schlüsselspeicher irgendwo wie

/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre/lib/security/cacerts 

Und das CERT für den Dienst muss der irgendwo befindet Schlüsselspeicher hinzugefügt werden, wie

befindet müssen hinzufügen