Estoy tratando de obtener una aplicación que se ejecute sobre Tomcat 6 para conectarse a un servidor LDAP a través de SSL.Certificado importado al almacén de claves Java, JVM ignora el nuevo certificado
Importé certificado del servidor al keystore usando:
C:\Program Files\Java\jdk1.6.0_32\jre\lib\security>keytool -importcert -trustcacerts -file mycert -alias ca_alias -keystore "c:\Program Files\Java\jdk1.6.0_32\jre\lib\security\cacerts"
cuando comienzo Tomcat con la depuración de SSL activado, de acuerdo a los registros de Tomcat está utilizando el archivo de certificado correcto:
trustStore is: C:\Program Files\Java\jdk1.6.0_32\jre\lib\security\cacerts
Sin embargo , Tomcat no agrega el certificado que acabo de importar, todos los demás certificados en el archivo de cacerts se imprimen en el registro y la conexión falla:
handling exception: 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
Reiniciar Tomcat no ayuda. He verificado con el comando keytool -list que el nuevo certificado realmente existe en el archivo.
¿Por qué Tomcat sigue ignorando mi nuevo certificado?
EDIT:
parece que el problema se debía a Windows 7 VirtualStore. Keytool creó una nueva copia del archivo cacert y Tomcat usó el archivo original.
¿El archivo 'mycert' contiene toda la cadena de certificados? Java quiere que toda la ruta de confianza esté en la tienda. – Romain
Simplemente una sugerencia simple, ve a 'C: \ Users \ YourAccountName', un nombre de archivo' .keystore' estará allí, ábrelo y quita el anterior de eso, y luego haz lo que hiciste de nuevo.Afortunadamente eso resolverá las cosas para usted :-) –
@Romain No, un certificado de confianza no tiene nada que ver con la cadena. Cualquier certificado importado como certificado confiable se trata como un certificado raíz de confianza. – emboss