SSLPeerUnverifiedException:使用groovy的RestClient和ignoreSSLIssues()时“peer not authenticated”

时间:2015-03-17 06:50:23

标签: java ssl groovy ssl-certificate

我正在为我的Rest端点编写集成测试,我选择了常规的RestClient。我的休息电话是" HTTPS"我开始面临SSL异常。 在深入研究这个问题的同时,我很高兴知道ignoreSSLIssues()方法(http://groovy.codehaus.org/modules/http-builder/doc/ssl.html)。由于这在HttpBuilder的0.7.1版本中可用,我升级了这个jar和一些依赖的jar。所以有了这个,按照文档,我希望下面的代码可以工作 -

def httpBuilder = new HTTPBuilder('baseurl')
httpBuilder.ignoreSSLIssues()
def resp = httpBuilder.get(path : 'restPath')
println resp

但是这仍然是在抛出javax.net.ssl.SSLPeerUnverifiedException:peer未经过身份验证。

对此有任何帮助表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:0)

刚遇到这个问题。如果您使用出站代理并且未配置HTTPBuilder类以明确使用它,您也会收到此欺骗性错误。

您需要设置HTTPBuilder的setProxy()方法。无论出于何种原因,HTTPBuilder似乎都不尊重-Dhttp.proxyHost等JVM OPTS。我的版本看起来像这样:

import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.HEAD

def http = new HTTPBuilder( 'https://www.dev.java.net/' )

http.setProxy("my.proxy.com", 8080, "http")
http.ignoreSSLIssues()

def status = http.request( HEAD ) {
    response.success = { it.status }
}