2015-10-26 2 views
0

Я отправил http-запрос с помощью Java-программы (используя HttpUrlConnection) на веб-сайт и загрузил файлы оттуда.Добавление сертификата в Java truststore и Sslhandshake

Веб-сайт «https» и использовать сертификаты.

Когда я пытаюсь запустить свой код, он возражает:

cause 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 

Я попытался пойти на этот сайт с моим браузером (Mozilla) й когда я проверить сертификаты, Есть три certificates.The сайта содержат эти сертификаты.

DigiCert High Assurance EV Root CA

-DigiCert High Assurance CA-3

-thecompanycert (Выдано DigiCert High Assurance CA-3)

И я просматриваю trustsroe с Keytool. У доверительного магазина есть только Корневой ЦС. Достаточно ли мне или мне нужно импортировать другой сертификат? Или только -компания?

В чем заключается риск добавления промежуточных сертификатов в хранилище java? Должен ли я это сделать?

Может ли кто-нибудь помочь в этом?

+0

импортировать целую цепочку сертификатов в доверительное управление –

ответ

1

Если сервер был настроен правильно, он должен отправить сертификат сайта вместе с любыми/всеми промежуточными сертификатами, которые необходимы для создания цепочки доверия. Кажется, сайт, на который вы подключаетесь, не отправляет промежуточный сертификат (ы).

Если вы являетесь администратором сайта, вы можете исправить это, и вам не придется обходиться с хранилищем доверия клиентов Java.

Если вы являетесь конечным пользователем, вы можете добавить промежуточный сертификат (ы) в хранилище доверия Java. Вам не потребуется добавлять сертификат сайта. Однако свяжитесь с владельцем сайта и попросите их исправить это.

Я отправил similar answer несколько дней назад.

+0

Итак, вы скажете мне, что если я добавлю только -DigiCert High Assurance CA-3 в свою доверенную службу, он будет работать? У меня уже есть корневой ЦС и после добавления промежуточного (-DigiCert High Assurance CA-3) в мой доверенный магазин, я могу исправить эту проблему. Не нужно добавлять «-компанию» (выпущено DigiCert High Assurance CA-3). Я прав? – javauser35

+0

Правильно, добавив промежуточный (DigiCert High Assurance CA-3) в ваш магазин, следует обратиться к проблеме подключения, которую вы видите. –

+0

Хорошо спасибо за ответ, но каковы риски добавления промежуточных сертификатов в truststore. Это единственный правильный способ? – javauser35

0

Учитывая, что этот CA и промежуточный CA уже присутствуют в доверительном магазине по умолчанию в последней версии Java, им не нужно импортировать их, если вы не используете более старую версию Java. В любом случае это зависит от того, насколько вы доверяете CA, но Java и большинство браузеров уже доверяют ему.

Смежные вопросы