SSLHandshakeException: создание пути PKIX завершилось неудачно с невозможностью найти цепочку сертификатов - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь подключить SSRS ReportServer с протоколом HTTPS от клиента Java, который он дает javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: сбой при создании пути PKIX: java.security.cert.CertPathBuilderException:Невозможно найти цепочку сертификатов Но я добавил сертификат в хранилище ключей Java. Это хранилище ключей, которое сертификат показывает с указанным псевдонимом.Но тот же самый запрос SSRS работает по протоколу HTTP. Примечание: Мы используем подстановочный сертификат от Go-Daddy для безопасной связи

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Можете ли вы проверить, что сертификат добавлен в 'Truststore Java', а не в Keystore (хотя оба имеют расширение .jks). Посмотрите на это https://docs.oracle.com/cd/E19830-01/819-4712/ablqw/index.html

Файл хранилища ключей, keystore.jks, содержит сертификат Сервера приложений, включая его закрытый ключ

Файл хранилища доверенных сертификатов, cacerts.jks, содержит доверенные сертификаты Сервера приложений

0 голосов
/ 18 марта 2019

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

По сути, когда GoDaddy выдает сертификат, они не выдаются непосредственно из корня.

Скорее всего, у вас есть сертификат, выданный промежуточным органом.

Промежуточные сертификаты можно получить по адресу https://ssl -ccp.godaddy.com / repository? Origin = CALLISTO

Цепочка сертификатов должна быть добавлена ​​к фактическому сертификату и импортирована на сервер .

Файл PEM, содержащий импортируемый сертификат, должен выглядеть следующим образом:

<actual certificate>
<intermediate certificate>
[<intermediate certificate> ...]

После этого вам не нужно больше ничего делать на клиенте.

РЕДАКТИРОВАТЬ

Перечитав мой ответЯ понял, что в этом процессе может быть немного неопределенности.Таким образом, в стремлении привести этот более полный цикл, мы идем.

  1. Создание пары ключей / самозаверяющего сертификата, как, скажем, контейнера PKCS # 12.
  2. Создание запроса подписи сертификата PKCS # 10 дляотправить в GoDaddy вышеуказанный сертификат.
  3. GoDaddy возвращает подписанный сертификат X.509 (как правило, с инструкциями по его установке).
  4. Получение сертификата (в формате PEM) и объединение цепочки выдачииз https://ssl -ccp.godaddy.com / repository? origin = CALLISTO и импортируйте его обратно в PKCS # 12 с шага 1.
  5. Назначьте PKCS # 12 в качестве сертификата TLSхранить на сервере SSRS.
...