#java #ssl #https #ssl-certificate #ssrs-2016
#java #ssl #https #ssl-сертификат #ssrs-2016
Вопрос:
Я пытаюсь подключить SSRS ReportServer по протоколу HTTPS с Java-клиента, который выдает исключение javax.net.ssl.SSLHandshakeException: sun.security.validator.Исключение ValidatorException: ошибка построения пути PKIX: java.security.cert.Исключение CertPathBuilderException: не удалось найти цепочку сертификатов Но я добавил сертификат в хранилище ключей Java, в хранилище ключей сертификат отображается с определенным псевдонимом. Но тот же вызов запроса SSRS работает с протоколом HTTP. Примечание: Мы используем подстановочный сертификат от Go-Daddy для безопасной связи
Ответ №1:
Можете ли вы проверить, что сертификат добавлен в ‘Java Truststore’, а не в хранилище ключей (хотя оба имеют расширение .jks). Взгляните на это https://docs.oracle.com/cd/E19830-01/819-4712/ablqw/index.html
Файл хранилища ключей keystore.jks содержит сертификат сервера приложений, включая его закрытый ключ
Файл Truststore, cacerts.jks, содержит доверенные сертификаты сервера приложений
Ответ №2:
Когда вы получали свой сертификат, в нем должен был быть p7b (возможно), включенный в него.
По сути, когда GoDaddy выдает сертификат, они не выдаются напрямую из корневого каталога.
Скорее всего, у вас есть сертификат, выданный промежуточным органом.
Вы можете получить промежуточные сертификаты по https://ssl-ccp.godaddy.com/repository?origin=CALLISTO
Цепочку сертификатов необходимо добавить к фактическому сертификату и импортировать на сервер.
Файл PEM, содержащий импортируемый сертификат, должен выглядеть следующим образом:
<actual certificate>
<intermediate certificate>
[<intermediate certificate> ...]
После этого у вас не должно возникнуть необходимости делать что-либо еще на клиенте.
Редактировать
После повторного прочтения моего ответа я понял, что может быть небольшая неопределенность в отношении процесса. Итак, в попытках довести этот цикл до более полного завершения, мы начинаем.
- Сгенерируйте пару ключей / самозаверяющий сертификат, скажем, в контейнере PKCS # 12.
- Создайте запрос на подпись сертификата PKCS # 10 для отправки в GoDaddy вышеуказанного сертификата.
- GoDaddy возвращает подписанный сертификат X.509 (обычно с инструкциями по его установке).
- Берем сертификат (предполагая формат PEM) и объединяем цепочку выдачи изhttps://ssl-ccp.godaddy.com/repository?origin=CALLISTO и импортируйте это обратно в PKCS # 12 с шага 1.
- Назначьте PKCS # 12 в качестве хранилища сертификатов TLS на сервере SSRS.