Je crée un programme client Java qui enverra des informations sensibles à un serveur Tomcat. Je dois donc utiliser une connexion SSL pour que les informations soient cryptées.
J'ai besoin d'utiliser un certificat auto-signé non approuvé, mais j'ai des problèmes pour établir une connexion à partir du client Java.
J'ai configuré avec succès Tomcat 5.5 pour utiliser SSL et je l'ai testé à travers Firefox, qui affiche un avertissement de certificat auto-signé.
J'ai suivi la configuration SSL de Tomcat 5.5 et ils ont mentionné de créer un keystore:
keytool -genkey -alias tomcat -keyalg RSA
Ensuite, j'ai exporté ce qui précède:
keytool -export -keystore .keystore -alias tomcat -file localhost.cer
Ensuite, j'ai importé le certificat ci-dessus dans la machine cliente:
keytool -import -alias tomcat -file localhost.cer -keystore "C:\Program Files"\Java\jdk1.6.0_17\jre\lib\security\cacerts"
Mais lors de l'exécution du client, j'obtiens:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Voici le code client:
URL url = new URL("https://localhost:8443");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
J'ai commencé à manipuler ces certificats aujourd'hui et je suis nouveau sur les keystores, donc soyez patients.
Quelqu'un peut-il expliquer comment exporter et importer le certificat créé dans Tomcat sur la machine cliente ?
Merci.