6 votes

Connexion SSL à partir du client Java

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.

1voto

Atlassian a de bonnes instructions sur la manière de résoudre ce problème.

http://confluence.atlassian.com/display/JIRA/Connecting+to+SSL+services

Une autre approche consiste à installer des validateurs de certificat moins stricts, mais cela ne devrait être fait qu'en dernier recours.

0voto

Gladwin B Points 2804

Utilisez le jar Apache HTTP Cleint et suivez ce Guide SSL.

EasySSLProtocolSocketFactory peut être utilisé pour créer des connexions SSL permettant au serveur cible de s'authentifier avec un certificat auto-signé.

0voto

asdf1234 Points 31

Je pense que vous devez saisir le mot de passe en utilisant "changeit".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X