Estoy creando un programa cliente Java que enviará información sensible a un servidor Tomcat. Entonces necesito usar la Conexión SSL para que la información sea encriptada.Conexión SSL desde el cliente Java
Necesito usar el certificado autofirmado no confiable pero tengo problemas para hacer la conexión desde el cliente java.
He configurado con éxito Tomcat 5.5 para usar SSL y probado a través de Firefox, que muestra una advertencia de certificado autofirmado.
que siguió la configuración SSL Tomcat 5.5 y mencionado para crear un almacén de claves:
keytool -genkey -alias tomcat -keyalg RSA
Entonces hice una exportación de las anteriores:
keytool -export -keystore .keystore -alias tomcat -file localhost.cer
Entonces hice una importación del certificado anterior en la máquina cliente:
keytool -import -alias tomcat -file localhost.cer -keystore "C:\Program Files"\Java\jdk1.6.0_17\jre\lib\security\cacerts"
Pero cuando se ejecuta el cliente me sale:
Excepción en el hilo "principal" javax.net. ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: no se puede encontrar una ruta de certificación válida para el destino solicitado
Este es el código de cliente:
URL url = new URL("https://localhost:8443");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
Ahora acabo de empezar a jugar con estos certificados hoy y soy nuevo en almacenes de claves, así que por favor sea paciente.
¿Puede alguien explicar cómo exportar e importar el certificado creado en Tomcat a la máquina del cliente?
Gracias.
Quizás importó el certificado incorrecto, o tal vez lo importó en el JRE incorrecto.Mucha gente tiene múltiples JRE en sus máquinas. Debería enumerar los contenidos de los cacerts y ver si su certificado está ahí. Además, puede configurar la propiedad del sistema java.net.debug = all para ver qué más detalles sobre el envío de certificados y la comprobación de partes. –