我用 Google reCaptcha v3 制作了一个 Maven 网络应用程序,它在 Centos 服务器上的 Glassfish 5 上运行。联系表单页面向https://www.google.com/recaptcha/api/siteverify发出请求并发送令牌和站点密钥。如果请求来自机器人或人类,您将获得一个回答问题的 json 对象。
当 Java 发送该请求时,出现连接错误:
sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
Java 或 Glassfish 服务器不信任该网站,因为它的密钥库中没有有效证书,如此处所述所述。
使用 /opt/jdk1.8.0_181/jre/lib/security/cacerts(存储证书的密钥库)中的 keytool (/opt/jdk1.8.0_181/jre/bin/keytool) 导入证书不起作用。