Release 2.1.8 ignore SSL certificate

Anyone know how to use this new feature/flag?

"Added optional flag to ignore SSL issues (ie: self signed certificates) with http calls (httpGet, httpPost, etc)"

Are you trying to use this in an existing driver/app?

You would add the flag into the "params" list for the command... as documented here

2 Likes

I was trying to find out if the OP was referring to a request from a driver/app or from Rule Machine, since both can issue HTTP requests. You are correct, that is how you would assign it in an app/driver.

Looks like the feature does not work as expected.

httpPost, I get this error "java.lang.IllegalArgumentException: Unexpected keyword args: ignoreSSLIssues,"

httpGet, I get "java.lang.UnsupportedOperationException"

Using a very basic function for testing.

def GetTest() {

def wxURI2 = "https://192.168.1.188:8443/api/s/default/self"

def requestParams2 =
[
	uri:  wxURI2,
    ignoreSSLIssues:  true

]

try{
httpPost(requestParams2)  //change to httpGet for the get test.
{
  response ->
	if (response?.status == 200)
	{
        if (logEnable) log.info response.data
		return response.data
	}
	else
	{
		log.warn "${response?.status}"
	}
}

} catch (Exception e){
    log.info e
}

}

Updated the example to make it more clear about the test hopefully.

You're not doing a GET....you're Doing a POST.

httpPost(requestParams2)

And your params are not defined correctly for a POST. Change to httpGet and try it again.

Just uploaded the post example as just changed the httpPost to httpGet. Did not see a reason to post both examples since 99% was the same .

It definately looks like a bug in the implementation... @bravenel & @mike.maxwell should be made aware of this...

I can confirm this behavior as well on 2.1.8.115

You don't get the exception if you use asynchttpXXXX, however, it still doesn't work....
Once ignoreSSLIssues is set to true, the asynchttpXXXX methods immediately return with a 408 and I don't see any packets on the wire, I had a wireshark running trying to see if I am insane or not.

@bravenel, can you guys take a look at the ignoreSSLIssues and why it doesn't work with the http and the asynchttp methods?

Here is the code I tried:

def sendAsyncHttpGet(message, handler)
{
    def requestParams =
    [
        uri:  "https://${settings.ip}/api/v1"+message,
        contentType: "application/json",
        headers: ["Authorization": "Bearer ${settings.api_key}"],
        ignoreSSLIssues:  true
    ]
    logger("sendAsyncHttpGet: ${requestParams}", "debug")
 
    asynchttpGet(handler, requestParams)    
}

Pretty sure theres a hot fix comming soon for this.

1 Like

Just installed the hotfix, it works now with httpGet, httpPost, etc... But it still fails for the async functions...

I can also confirm 2.1.8.117 now works with httpGet and httpPost and the ignoreSSLIssues. I have not testing asynchttpxxx though.

Thank you for fixing.

would like this on websockets (don't want to send unencrypted messages my Samsung TV)
Will update or delete when I've actually updated :man_facepalming:
Updated .. doesn't work (not surprised, it would be documented if it were so)

2 Likes

@chuck.schwer +1 for ignoring ssl issues with websockets. The samsung tv I'm using looks to require an ssl socket and the certificate used appears to be self signed.

1 Like