Google reCAPTCHA требуется сертификат отсутствует в GlassFish 5.1 - PullRequest
0 голосов
/ 30 октября 2019

У меня есть веб-приложение, которое использует 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. Как определить и получить необходимый сертификат?

1 Ответ

0 голосов
/ 01 ноября 2019

Я нашел решение. Вот оно:

  1. Открыть https://www.google.com/recaptcha/api/siteverify с помощью браузера Chrome.
  2. Нажмите черный замок, расположенный перед адресом.
  3. Нажмите Сертификат.
  4. Выберите вкладку Подробно , а затем нажмите кнопку Копировать в файл ... ;сохраните сертификат в файл .cer . Например, recaptcha.cer.
  5. Импортируйте файл .cer в glassfish / domains / domain1 / config / cacerts.jks, используя keytool. Это командная строка: keytool -import -file recaptcha.cer -alias recaptcha -keystore GLASSFISH_HOME/glassfish/domains/domain1/config/cacerts.jks -storepass changeit. Файл keytool.exe находится по адресу JAVA_HOME / bin.
  6. Перезапустите GlassFish

Надеюсь, это поможет другому коллеге-программисту без опыта работы с сертификатами.

Предупреждение:сертификат действителен только около 3 месяцев;Тот, который я получил, действителен до следующего января 2. Кажется, что эту процедуру придется периодически повторять.

РЕДАКТИРОВАТЬ 11/13/2019 : Это решение работало только в течение нескольких дней, хотя сертификат претендует на силу до января. Я получил еще один сертификат и повторил процедуру, но на этот раз она не сработала. Так что я действительно еще не нашел решения.

...