【问题标题】:Google reCAPTCHA required certificate missing in GlassFish 5.1GlassFish 5.1 中缺少 Google reCAPTCHA 所需的证书
【发布时间】:2019-10-30 00:03:33
【问题描述】:

我有一个使用 Google reCAPTCHA V2 的网络应用程序。它在带有 JDK 1.8.0_144 的 GlassFish 5.0 以及带有 JDK 1.8.0_231 的 WildFly 14 中运行良好。我将它部署到带有 JDK 1.8.0_231 的 GlassFish 5.1 服务器。站点验证失败,但出现以下异常:

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

我了解缺少所需的证书。该证书存在于 5.0 的 cacerts.jks 文件中,但在 5.1 中缺失。用 keytool 列出他们的内容,我可以看到 5.0 版的 cacerts.jks 文件有 76 个证书,而 5.1 版的文件只有 2 个(glassfish-instance 和 s1as)。将 5.1 的 cacerts.jks 文件替换为 5.0 的文件,我的应用程序在 5.1 中运行良好。

我在 Google reCAPTCHA 的网页中找不到任何有关所需证书的信息。如何识别和获取所需的证书?

【问题讨论】:

    标签: ssl certificate glassfish recaptcha


    【解决方案1】:

    我找到了解决方案。就是这样:

    1. 使用 Chrome 浏览器打开https://www.google.com/recaptcha/api/siteverify
    2. 点击地址前面的黑色挂锁。
    3. 点击证书
    4. 选择详细信息选项卡,然后单击复制到文件...按钮;将证书保存到 .cer 文件中。例如,recaptcha.cer。
    5. 使用 keytool 将 .cer 文件导入 glassfish/domains/domain1/config/cacerts.jks。这是命令行: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个月左右;我拿到的那个有效期到明年1月2日。看来这个程序要定期重复。

    编辑 2019 年 11 月 13 日:尽管证书声称有效期至 1 月,但此解决方案仅工作了几天。我获得了另一个证书并重复了该过程,但这一次它不起作用。所以我真的还没有找到解决办法。

    【讨论】:

      猜你喜欢
      • 2014-04-15
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 2021-09-21
      • 2017-05-21
      • 1970-01-01
      相关资源
      最近更新 更多