В приложении java я пытаюсь прочитать RSS-канал из предупреждений Google (https://www.google.com/alerts/feeds/...). На моем ноутбуке под управлением Windows 10 работает нормально. Посещение URL-адреса RSS-канала также отлично работает из веб-браузера на Windows. Но когда я пытаюсь запустить приложение java на сервере Ubuntu (16.04.06), я получаю следующее исключение:
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
Я могу обойти это, найдя сертификат, который мой веб-браузер доверяет и хранит его в доверенном хранилище, чем мое приложение java использует на сервере Ubuntu. Тем не менее, это не похоже на правильное решение. Я думаю, что это root сертификат, которому должна доверять операционная система. В моем веб-браузере это называется «GlobalSign Root CA - R2». Когда я запускаю приложение java на своем ноутбуке Windows 10, оно как-то находит сертификат, которому оно доверяет. Это заставляет меня поверить, что сертификаты на моем сервере Ubuntu устарели или что-то в этом роде.
Это лучший или более правильный способ решения этой проблемы, чем хранение сертификата, который я нашел в своем веб-браузере, в java хранилище доверия приложения на сервере Ubuntu?