проблемма с сертификатом при загрузки страницы сайта

 
 
 
Сообщения:16
Приветсвую. Пишу прогу - парсер . При попытке подключиться к сайту выкидывает исключение.
Quote:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

гугл поиск выдал что проблеммы с сертификатами и надо устанавливать вручную сертификат сайта. интересно можно ли это в парсере програмно обойти? кто-что посоветует?
 
 
Сообщения:10007
Когда ты покупаешь сертификат - его подписывает CA (Certification Authority). Этих CA несколько сотен и им все (браузеры, Java, и пр) доверяют. Если твой серт подписан таким CA, то твоему сертификату тоже будут доверять. Откуда Java знает кому доверять? У нее есть файлик с доверенными сертификатами (cacerts).

Однако у CA не один сертификат - их там иерархия. Есть root certificate, он подписывает intermediate certificate, а уже тем подписываются серты для наших сайтов. И в то время как браузеры доверяют intermediate сертам, остальной софт как правило доверяет только root сертам. Так вот чтоб решить эту проблему:
1. Нужно сказать чтоб владелец сайта починил настройку веб сервера. Чтоб отдавался не только серт, а вся цепочка (certificate chain). Тогда Java пройдет по цепочке пока не найдет тот серт которому она доверяет.
2. Добавить сертификат сайта в доверенные (cacerts)
3. Ну и конечно можно игнорировать проблему настроив Java таким образом что она не обращала внимания на эту проблему.

Правильный способ только 1ый, остальные - костыли.
Изменен:11 фев 2020 02:10
 
 
Сообщения:16
Мне подходят только "неправильные" методы походу. И скорее всего 3й. Как это реализовать? Если я сделаю все на своем компе при компиляции приложения , будет ли прога адекватно работать на других компьютерах? (Ведь там же джава машина не настроена)
 
 
Сообщения:10007
pycha:
Если я сделаю все на своем компе при компиляции приложения , будет ли прога адекватно работать на других компьютерах? (Ведь там же джава машина не настроена)
Да, это все делается в коде. Под рукой примера нет, но в интернетах я когда-то находил.
 
 
Сообщения:16
Если вдруг кто столкнулся с этим, вот решение
Ссылка
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет