Sto cercando di ottenere un'applicazione in esecuzione su Tomcat 6 per connettersi a un server LDAP su SSL.Certificato importato nel keystore Java, JVM ignora il nuovo cert
ho importato il certificato del server di archivio chiavi utilizzando:
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"
quando inizio Tomcat con il debug SSL attivato, secondo i registri Tomcat utilizza il file certificato corretto:
trustStore is: C:\Program Files\Java\jdk1.6.0_32\jre\lib\security\cacerts
Tuttavia , Tomcat non aggiunge il certificato appena importato - tutti gli altri certificati nel file cacerts vengono stampati nel registro e la connessione non riesce:
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
Il riavvio di Tomcat non è di aiuto. Ho verificato con il comando keytool -list che il nuovo certificato esiste effettivamente sul file.
Perché Tomcat continua a ignorare il mio nuovo certificato?
EDIT:
sembra che il problema è stato causato da Windows 7 VirtualStore. Keytool ha creato una nuova copia del file cacert e Tomcat ha utilizzato il file originale.
Il file 'mycert' contiene l'intera catena di certificati? Java vuole che l'intero percorso di fiducia sia nello store. – Romain
Solo un semplice suggerimento, vai al tuo 'C: \ Users \ YourAccountName', ci saranno i nomi di file' .keystore', aprirlo e rimuovere quello precedente da quello, e poi fare di nuovo quello che hai fatto.Spero che risolverai le cose per te :-) –
@Romain No, un certificato attendibile non ha nulla a che fare con la catena. Qualsiasi certificato importato come certificato attendibile viene considerato come un certificato radice affidabile. – emboss