我使用的是运行在JBoss7.0.2. using服务器上的Java1.7应用程序。
我创建了一个REST端点来处理用户登录。这很好,但是当我调用Google的recaptcha (v2) url (https://www.google.com/recaptcha/api/siteverify)时,我会得到以下错误:
javax.net.ssl.SSLHandshakeException:收到致命警报: handshake_failure
昨天,这个程序没有出现错误,我们的服务器上也没有任何变化,所以我怀疑googles端可能发生了一些变化。
问题
有谁知道我今天为什么开始犯这个错误,以及我如何解决这个错误?
更多信息:
我尝试过用以下参数构建我们的应用程序(mvn干净安装),但这并没有什么区别。
-Dhttps.protocols=TLSv1.2,TLSv1.1,TLSv1更多信息:
如果我直接用Postman调用Google的验证端点,就不会得到握手错误:
POST https://www.google.com/recaptcha/api/siteverify?secret=seceret-key&response=rechapta另外,如果我从我们拥有的另一个JBoss服务器(localhost &另一个环境)调用它,它将不会得到握手错误。
所以在我们的服务器上一定有不正确的地方。
发布于 2020-12-15 11:54:31
我将谷歌的证书(*.google.com.cer)添加到服务器仙人掌上(在服务器jre,例如/home/jboss/java-1.7.0-openjdk-1.7.0.161-2.6.12.0.el7_4.x86_64/jre/lib/security/cacerts)。重新启动jboss服务器。
Owner: CN=*.google.com, O=Google LLC, L=Mountain View, ST=California, C=US
Issuer: CN=GTS CA 1O1, O=Google Trust Services, C=US
Serial number: 6e4318b8d790165c0300000000badb8a
Valid from: Tue Nov 10 16:34:43 SAST 2020 until: Tue Feb 02 16:34:42 SAST 2021证书可以从这个url:https://www.google.com/recaptcha/api/siteverify复制。

(见https://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed/)
发布于 2021-04-30 11:08:01
Google有多个根CA。您需要检查当前CA的Google存储库,并将它们全部添加到keystore中,以确保SSL握手在任何时候都能成功地工作。您可以在这里访问PKI存储库,https://pki.goog/repository/。
https://stackoverflow.com/questions/65302866
复制相似问题