Je crée un programme client Java qui enverra des informations sensibles à un serveur Tomcat. J'ai donc besoin d'utiliser la connexion SSL pour que les informations soient cryptées.Connexion SSL à partir du client Java
Je dois utiliser un certificat non approuvé auto-signé, mais j'ai des problèmes de connexion avec le client java.
J'ai réussi à installer Tomcat 5.5 pour utiliser SSL et l'ai testé via Firefox, qui affiche un avertissement de certificat auto-signé.
J'ai suivi la configuration SSL Tomcat 5.5 et ils ont mentionné pour créer un fichier de clés:
keytool -genkey -alias tomcat -keyalg RSA
Je l'ai fait une exportation de ce qui précède:
keytool -export -keystore .keystore -alias tomcat -file localhost.cer
Puis j'ai fait une importation du certificat ci-dessus dans la machine client:
keytool -import -alias tomcat -file localhost.cer -keystore "C:\Program Files"\Java\jdk1.6.0_17\jre\lib\security\cacerts"
Mais lorsque le client en cours d'exécution je reçois:
Exception dans le thread "principal" javax.net. ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Échec de la construction du chemin PKIX: sun.security.provider.certpath.SunCertPathBuilderException: impossible de trouver le chemin de certification valide vers la cible demandée
Ceci est le code client:
URL url = new URL("https://localhost:8443");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
Maintenant, je viens de commencer à jouer avec ces certificats aujourd'hui et je suis nouveau keystores, donc s'il vous plaît soyez patient.
Quelqu'un peut-il expliquer comment exporter et importer le certificat créé dans Tomcat sur la machine cliente?
Merci.
Peut-être avez-vous importé le mauvais certificat, ou peut-être l'avez-vous importé dans le mauvais JRE.Beaucoup de gens ont plusieurs JRE sur leurs machines. Vous devriez lister le contenu de cacerts et voir si votre cert est dedans. En outre, vous pouvez définir la propriété système java.net.debug = all pour voir plus de détails sur l'envoi et la vérification des pièces du certificat. –