Sto creando un programma client Java che invierà informazioni sensibili a un server Tomcat. Quindi ho bisogno di usare la connessione SSL in modo che le informazioni vengano crittografate.Connessione SSL dal client Java
Ho bisogno di utilizzare un certificato non autofirmato ma con problemi di connessione dal client java.
Ho configurato con successo Tomcat 5.5 per utilizzare SSL e testato tramite Firefox, che visualizza l'avviso del certificato autofirmato.
Ho seguito il 5.5 configurazione SSL Tomcat e hanno accennato per creare un archivio di chiavi:
keytool -genkey -alias tomcat -keyalg RSA
Poi ho fatto un export di quanto sopra:
keytool -export -keystore .keystore -alias tomcat -file localhost.cer
Poi ho fatto un'importazione del certificato sopra in macchina client:
keytool -import -alias tomcat -file localhost.cer -keystore "C:\Program Files"\Java\jdk1.6.0_17\jre\lib\security\cacerts"
Ma durante l'esecuzione del client ottengo:
Exception in thread "main" javax.net. ssl.SSLHandshakeException: sun.security.validator.ValidatorException: costruzione del percorso PKIX non riuscita: sun.security.provider.certpath.SunCertPathBuilderException: impossibile trovare il percorso di certificazione valido per il target richiesto
Questo è il codice del client:
URL url = new URL("https://localhost:8443");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
Ora ho solo iniziato a giocare con questi certificati oggi e io sono nuovo di archivi di chiavi, quindi per favore siate pazienti.
Qualcuno può spiegare come esportare e importare il certificato creato in Tomcat sul computer client?
Grazie.
Forse hai importato il certificato sbagliato o forse lo hai importato nel JRE sbagliato.Molte persone hanno più JRE sulle loro macchine. Dovresti elencare il contenuto dei cacerts e vedere se il tuo cert è lì dentro. Inoltre, è possibile impostare la proprietà di sistema java.net.debug = all per vedere quanti più dettagli sull'invio e sul controllo dei certificati. –