не удается найти действительный путь сертификации для запрашиваемой целевой Google Recaptcha в приложении Java Maven - PullRequest
0 голосов
/ 12 февраля 2019

Я сделал веб-приложение Maven с контактной формой с Google reCaptcha v3, который работает на Glassfish 5 на сервере Centos.Страница контактной формы отправляет запрос на номер https://www.google.com/recaptcha/api/siteverify и отправляет токен и ключ сайта.Вы получите объект json, отвечающий на вопрос, если запрос поступил от бота или человека.

Когда Java отправляет этот запрос, я получил ошибку соединения:

sun.security.validator.ValidatorException: сбой построения пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException:невозможно найти действительный путь сертификации для запрошенной цели

Java или сервер Glassfish не доверяют веб-сайту, поскольку в хранилище ключей нет действительного сертификата, как объяснено здесь .

Импорт сертификата с помощью keytool (/opt/jdk1.8.0_181/jre/bin/keytool) в /opt/jdk1.8.0_181/jre/lib/security/cacerts (хранилище ключей, в котором хранятся сертификаты) не являетсяза работой.

1 Ответ

0 голосов
/ 12 февраля 2019

В доменной папке Glassfish (в моем случае это / home / glassfish / glassfish5 / glassfish / domains / domain1) находится папка конфигурации с файлом cacerts.jks.Вы можете редактировать его с помощью keytool, но вы также можете редактировать его с помощью Keytool Explorer (https://keystore -explorer.org / ).Загрузите сертификат с помощью браузера, как объяснено her .Вы можете скачать сертификат SSL-сервера как .crt.В моем случае это был wwwgooglecom.crt.Это легко импортировать с помощью инструмента Keystore выше.Загрузите файл cacerts.jks и перезапустите сервер Glassfish.

...