#ssl #tomcat
#ssl #кот
Вопрос:
Я получаю эту ошибку в моем журнале tomcat catalina.out:
Вызвано: sun.security.validator.Исключение ValidatorException: ошибка построения пути PKIX: sun.security.provider.certpath.Исключение SunCertPathBuilderException: не удается найти действительный путь сертификации к запрошенной цели
при попытке получить доступ к этому удаленному URL-адресу: https://remote-hostname-fqdn-here:8443 . Это прекрасно работает, когда один и тот же вызов выполняется локально.
У меня есть сертификат, импортированный в хранилище ключей, т. Е. Я вижу следующее, когда перечисляю содержимое сертификатов с помощью keytool:
$ /opt/jdk1.7.0_75/bin/keytool -list -v -keystore /opt/apache-tomcat/conf/ssl/cacerts | grep icr
Alias name: remote-hostname-fqdn-here
Creation date: Jan 4, 2018
Entry type: trustedCertEntry
Owner: CN=remote-hostname-fqdn-here, O="Org-name-removed", L=Place-removed, ST=State-removed, C=US
Issuer: CN=remote-hostname-fqdn-here, O="Org-name-removed", L=Place-removed, ST=State-removed, C=US
Serial number: serial-number-removed
Valid from: Thu Jan 04 13:22:32 CST 2018 until: Sun Jan 02 13:22:32 CST 2028
Certificate fingerprints:
MD5: md5sum-value-removed
SHA1: sha1-value-removed
SHA256: sha256-value-removed
Signature algorithm name: SHA1withRSA
Version: 1
Обратите внимание, что у меня есть экземпляры tomcat в двух средах, оба из которых работают под управлением Java jdk1.7.0_75 и Tomcat 7.0.90, и с той же конфигурацией соединителя SSL. Как ни странно, эта ошибка возникает только в одном из них, хотя мы пробовали одно и то же действие для очистки кэша приложения, чтобы вызвать ошибку в обоих.
Хотя у меня есть сертификат с подстановочным знаком (отличный от упомянутого здесь сертификата), настроенный в server.xml на всех серверах я вижу логичным, что мне придется импортировать этот сертификат в хранилище ключей. Однако я не импортировал его ни в одну среду, поэтому я не понимаю, почему я получаю эту ошибку только в одной среде. Обратите внимание, что кроме этой функции очистки кэша приложений удаленного сервера, все остальные аспекты SSL, похоже, работают нормально.
Ответ №1:
Импорт сертификата с подстановочным знаком, который охватывал тот же домен, что и текущие для каждого сервера, решил проблему. До сих пор не знаю, почему я не смог воссоздать проблему в другой среде. В то время как .файлы war и .jar были разными, мне сказали, что часть кода для проблемы здесь одинакова.