Java: Chargement du fichier de clés SSL via une ressource

Si j'ai:

System.setProperty("javax.net.ssl.keyStore", '/etc/certificates/fdms/WS1001237590._.1.ks');
System.setProperty("javax.net.ssl.keyStorePassword", 'DV8u4xRVDq');
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");

Je suis capable d'ouvrir une connexion sécurisée sans problème.

Cependant, j'aimerais avoir les certificats stockés directement dans la guerre, donc j'utilise: (Le fichier de flux d'entrée deviendra par la suite un flux de ressources, mais je vais le faire pour l'obtenir pour fonctionner.)

System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream("/etc/certificates/fdms/WS1001237590._.1.ks"), "DV8u4xRVDq".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, "DV8u4xRVDq".toCharArray());
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(kmf.getKeyManagers(), null, null);

Maintenant, si j'ouvre la même connexion, j'obtiens: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

De quoi êtes-vous, puis de le faire avec le SSLContext instance sc? Êtes-vous l'utiliser pour créer un SocketFactory et en le définissant dans l'objet d'effectuer les connexions?
Je ne vais pas faire quelque chose avec elle. Je suis à l'aide d'un Axe pour ensuite se connecter au service web.
N'oubliez pas de fermer la FileInputStream, des exemples de code dans la javadoc de fichier de clés explicitement la ferme.

OriginalL'auteur Reverend Gonzo | 2010-07-14