2

I have already tried using http.ignoreSSLIssues() to make the script ignore the problem.

I have already tried importing the certificate into a trusted keystore and then using that keystore to create a new SSLSocketFactory as instructed by the http-builder wiki page.

I have already tried installing the Unlimited Security policy jars.

HTTPBuilder http = new HTTPBuilder("${host}${path}")
println("Fetching ${host}${path}")

println("Supposedly ignoring SSL issues")
http.ignoreSSLIssues()

def keyStore = KeyStore.getInstance( KeyStore.defaultType )

getClass().getResource( "truststore.jks" ).withInputStream {
    keyStore.load( it, "test1234".toCharArray() )
    println("Loaded keystore")
}

http.client.connectionManager.schemeRegistry.register(new Scheme("https", 443, new SSLSocketFactory(keyStore)) )
println("Loaded new socket factory with keystore")

http.request( Method.GET, ContentType.URLENC ) { req ->
    uri.query = params

    response.contentType = ContentType.JSON

    response.success = { resp, Map map ->
        def json = map.keySet()[0]

        def slurper = new JsonSlurper()
        ret = slurper.parseText(json)

    }
}

And yet, I get the same SSLPeerUnverifiedException every time. Here is the console output:

Fetching https://myhost.mydomain.com/report.aspx
Supposedly ignoring SSL issues
Loaded keystore
Loaded new socket factory with keystore
Caught: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1066)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044)
    at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:515)
    at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:434)
    at groovyx.net.http.HTTPBuilder.request(HTTPBuilder.java:383)
    at groovyx.net.http.HTTPBuilder$request$0.call(Unknown Source)
    at fetch_windows_direct_report.httpget(fetch_windows_direct_report.groovy:93)
    at fetch_windows_direct_report$httpget$0.callCurrent(Unknown Source)
    at fetch_windows_direct_report.fetchanalytics(fetch_windows_direct_report.groovy:58)
    at fetch_windows_direct_report$fetchanalytics.callCurrent(Unknown Source)
    at fetch_windows_direct_report.run(fetch_windows_direct_report.groovy:31)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

Process finished with exit code 1

Line 93, where my code experiences the exception, is the http.request( Method.GET, ContentType.URLENC ) { req -> line.

I've verified that my SSL certificate is valid and signed by a Trusted Root Authority by using Chrome (as well as using https://www.sslshopper.com/ssl-checker.html)

enter image description here

I don't understand why this isn't working. Please help!

Community
  • 1
  • 1
Kenny Wyland
  • 20,844
  • 26
  • 117
  • 229
  • try also https://www.ssllabs.com/ssltest/ – ZhongYu Feb 15 '17 at 21:52
  • see if this solution helps - http://stackoverflow.com/a/30760134/2158288 – ZhongYu Feb 15 '17 at 21:59
  • I tried installing the Unlimited Strength jars from your linked suggestion and that didn't change anything. – Kenny Wyland Feb 15 '17 at 22:10
  • There's too little information of your problem. You should try step debug and find out why verify fails. It seems that apache does its own verification of certificates and the logic isn't cannon. – ZhongYu Feb 15 '17 at 22:28

0 Answers0