Сообщение об ошибке, которое вы получаете, появляется, когда Java не знает о корневом сертификате, возвращенном конечной точкой TLS.Это часто происходит, если вы меняете доступные корневые сертификаты.
Per https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#Customization:
"If a truststore named <java-home>/lib/security/jssecacerts is found, it is used.
If not, then a truststore named <java-home>/lib/security/cacerts is searched for and used (if it exists).
Finally, if a truststore is still not found, then the truststore managed by the TrustManager will be a new empty truststore."
Openssl - хороший инструмент для устранения таких проблем с сертификатами.Вы можете использовать следующую команду для получения сертификата, возвращенного конечной точкой.Это может помочь вам определить, как выглядит цепочка сертификатов.
openssl s_client -showcerts -connect www.example.com:443 </dev/null
Вы можете просмотреть список сертификатов, которые Java знает об использовании keytool , утилиты, поставляемой с JRE.
keytool -list -cacerts
Некоторые системные администраторы перезаписывают сертификаты по умолчанию, записывая альтернативный файл склада доверенных сертификатов в папку по умолчанию.В других случаях команды могут переопределить значение по умолчанию, используя системное свойство javax.net.ssl.trustStore .
Наконец, вы можете использовать утилиту jps , также предоставляемую сJRE, чтобы увидеть системные свойства, установленные для работающего процесса Java.
jps -v