javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败google recaptcha

时间:2015-12-17 21:52:17

标签: java ssl key recaptcha sslhandshakeexception

我必须在我的开发(Spring应用程序)中包含google recaptcha。我有google密钥和密钥进行验证,一切正常。

现在我将recaptcha验证片移到另一个基于休息服务的应用程序上,这样我就可以使用rest服务来利用/更改任何键或url等等。设置是我在server1中有其他服务应用程序(部署在weblogic中,但添加了JAVA_OPTS参数以使用sun库)和tomcat与我的应用程序在服务器2上。所以当我部署这个并访问时,我在验证响应时收到错误

(mapcar (lambda (n) (root-path '(A (B) (C (D) (E))) n))
        '(a b c d e f))

=> ((a) (a b) (a c) (a c d) (a c e) nil)

我在server1和server2密钥库之间同步了所有密钥,但我仍然看到错误。

我的代码中的错误如下:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我在这里遗漏了什么?感谢。

注意:我可以通过浏览器访问https://www.google.com/recaptcha/api/siteverify网址。

2 个答案:

答案 0 :(得分:1)

我能够解决这个问题。网站http://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed.html帮助了我。

我必须在我的weblogic密钥库中添加Google证书。它默认存在于cacerts中,但不存在于DemoTrust.jks

再次感谢Hrabosch。

答案 1 :(得分:0)

您确定自己拥有正确的证书路径吗?当你移动你的recaptcha片段时,它应该在另一个具有不同证书路径的服务器(server1?)上构建。这个错误就是这个。在JAVA_OPT中检查(或添加)您的证书路径,以便在server1上构建。 此错误仅限于它无法在定义的路径中找到证书。检查路径或权限。 或者您可以通过HARD设置证书路径:)设置为运行您的应用程序服务器:

app.controller('HomeController', ['ProfileService', function(ProfileService) {
    var self = this;

    ProfileService.getProfile().then(function(result) {
        self.name = result.name;

        self.showAlert = result.showAlert;
    });
}]);

或者在Java中

app.controller('ProfileController', ['ProfileService', function(ProfileService) {
    var self = this;

    ProfileService.getProfile().then(function(result) {
        self.profile = result;

        self.profile.showAlert = false;
    });
}]);