Я пытаюсь запустить приложение поверх Tomcat 6 для подключения к серверу LDAP через SSL
Я импортировал сертификат сервера в хранилище ключей, используя:
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"
Когда я запускаю Tomcat с включенной отладкой SSL, судя по журналам, Tomcat использует правильный файл сертификата:
trustStore is: C:\Program Files\Java\jdk1.6.0_32\jre\lib\security\cacerts
Однако, Tomcat не добавляет сертификат, который я только что импортировал -все остальные сертификаты в файле cacerts печатаются в журнал -и соединение не установлено:
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
Перезапуск Tomcat не помогает. С помощью команды keytool -list я проверил, что новый сертификат действительно существует в файле.
Почему Tomcat продолжает игнорировать мой новый сертификат?
РЕДАКТИРОВАТЬ:
Похоже, проблема была вызвана Windows 7 VirtualStore. Keytool создал новую копию файла cacert, а Tomcat использовал исходный файл.