У меня есть веб-приложение, которое использует Google reCAPTCHA V2. Он отлично работает в GlassFish 5.0 с JDK 1.8.0_144, а также в WildFly 14 с JDK 1.8.0_231. Я развернул его на сервере GlassFish 5.1 с JDK 1.8.0_231. Сбой проверки сайта со следующим исключением:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: сбой при построении пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException: не удается найти действительную сертификациюпуть к запрошенной цели
Я понимаю, что требуемый сертификат отсутствует. Этот сертификат присутствует в файле cacerts.jks версии 5.0, но отсутствует в 5.1. Распечатав их содержимое с помощью keytool, я увидел, что файл cacerts.jks версии 5.0 имеет 76 сертификатов, а файл версии 5.1 - только 2 (glassfish-instance и s1as). Заменив файл cacerts.jks 5.1 на файл 5.0, мое приложение отлично работает в 5.1.
Я не смог найти информацию о необходимом сертификате на веб-странице Google reCAPTCHA. Как определить и получить необходимый сертификат?