我使用的是运行在jboss7.0.2.final服务器上的java1.7应用程序。
我创建了一个rest端点来处理用户登录。这个很好用,但是当我调用google的recaptcha(v2)url时(https://www.google.com/recaptcha/api/siteverify),我得到以下错误:
javax.net.ssl.sslhandshakeexception:收到致命警报:握手失败
这是工作没有错误,昨天,并没有在我们的服务器上有任何变化,所以我怀疑一些东西可能已经改变了谷歌端。
问题
有人知道为什么我今天开始出现这个错误,以及我如何解决它吗?
更多信息:
我试过用以下参数构建我们的应用程序(mvn clean install),但没有什么区别。
-Dhttps.protocols=TLSv1.2,TLSv1.1,TLSv1
更多信息:
如果我直接用postman调用google的verify端点,就不会出现握手错误:
POST https://www.google.com/recaptcha/api/siteverify?secret=seceret-key&response=rechapta
另外,如果我从其他jboss服务器(localhost&otherenvironment)调用它,它不会得到握手错误。
所以我们的服务器上一定有问题。
1条答案
按热度按时间mm5n2pyu1#
我添加了谷歌的证书(
*.google.com.cer
)到服务器cacerts(在服务器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服务器。可以从此url复制证书:https://www.google.com/recaptcha/api/siteverify.
(见https://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed/)