Java usa un almacén de Autoridades Certificadoras (CA), Java trustStore, que es mantenido por la Java Development Kit (JDK). Cuando una aplicación Java se conecta a un servicio SSL/TLS, lo primero que hace es comprobar si el certificado está firmado por alguna de las CA albergadas en la trustStore. En caso de que el certificado no pueda ser validado por la trustStore en los logs se registrará un error similar a PKIX path building failed... unable to find valid certification path to requested target
.
Para comprobar si, efectivamente, los problemas de conexión se deben a la falta de una CA en la trustStore, se puede usar la clase de Java SSLPoke en dos sencillos pasos:
- Descargar SSLPoke.class
- Ejecutar
java SSLPoke host port
A continuación un ejemplo, usando SSLPoke
para validar una trustStore que aun no contiene la correspondiente CA.: