Bonjour

Je découvre tout juste les API Java pour faire du web service, désolé si j'écris des erreurs.

Je dois envoyer une chaine de caractère sur un webservice en https. On m'a fourni un certificat PKCS7 (un fichier avec l'extension p7b).
Je pensais faire la même chose qu'avec un pkcs12 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
String pKeyFile="file.p12";
String pKeyPassword="blabla";
 
 
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
KeyStore keyStore = KeyStore.getInstance("PKCS12");
 
InputStream keyInput = new FileInputStream(pKeyFile);
keyStore.load(keyInput, pKeyPassword.toCharArray());
keyInput.close();
 
keyManagerFactory.init(keyStore, pKeyPassword.toCharArray());
 
SSLContext context = SSLContext.getInstance("TLS");
context.init(keyManagerFactory.getKeyManagers(), null, new SecureRandom());
 
URL url = new URL(httpsURLstr);
 
httpsURLConnection httpsConn = (HttpsURLConnection)url.openConnection(proxy);
 
httpsConn.setSSLSocketFactory(context.getSocketFactory());
Mais d'après ce que je lis sur le net j'ai l'impression que je dois passer obligatoirement par l'outil 'keytool' pour charger le certificat. Ca me va pour faire des tests. Mais ca veut dire qu'a chaque fois que je veux déployer mon application sur un chaine de production, je vais devoir charger le certificat avec keytool. C'est pas très pratique. Est ce qu'il y a une solution ? genre charger le certificat seulement depuis mon appli...

Merci de votre aide

a bientôt