TabMigrate icon indicating copy to clipboard operation
TabMigrate copied to clipboard

Add support for TLSv1.1 / TLSv1.2

Open til-jmac opened this issue 6 years ago • 4 comments

Trying to get TabMigrate to authenticate against a server and I keep getting this error. I can successfully login to the web interface, the REST API is enabled, and I can also authenticate successfully and get a token via the REST API using Postman on the same machine. But TabMigrate always errors with this message. Server Version is v10.3.3, using AD with Automatic Login enabled.

After doing a bit of research online I wonder if it's related to some security hardening we implemented to limit all but TLS v1.2 protocol and refuse several of the weaker algorithms (the full protocol spec is: ssl.ciphersuite: ECDHE:!RSA:!3DES:!DES:!IDEA:!aNULL:!MD5:!DSS:!RC4). I read somewhere that .NET framework only supports TLS v1.0, isn't that what TabMigrate is built on? Or am I barking up the wrong tree?

Error: Error sending sign in request: System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() at TableauServerRequestBase.SendHttpRequestContents_Inner(WebRequest request, String bodyText, String httpMethod) at TableauServerRequestBase.SendPostContents(WebRequest request, String bodyText) at TableauServerSignIn.ExecuteRequest()

til-jmac avatar Jul 17 '18 13:07 til-jmac

Well, it seems after some testing, I can confirm that TabMigrate doesn't support anything newer than TLSv1.0. Would be great if you could add support for TLSv1.2 so we can use it on servers with ~~hardened~~ up-to-date security protocols in place!

til-jmac avatar Jul 24 '18 10:07 til-jmac

duplicate of #19. PR was submitted for that issue. Basically, there are multiple ways to fix, I've really only done the one in this case, the change in the PR and recompile. Compiling from source in a newer version of .NET Framework should also work.

ghost avatar Sep 14 '18 10:09 ghost

I used the information that is provided to allow TLSv1.2 for SecurityPointManager.SecurityProtocol. As described I added the code snippet in TableauServerRequestBase -> SendHttpRequestContents_Inner method. However, it fails in first run and second run onward it is successful. To make it successfully run every time I have to add this code before the web request creates i.e, TableauServerSignIn ->ExecuteRequest. public bool ExecuteRequest() { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3; var webRequest = WebRequest.Create(_onlineUrls.UrlLogin); .......

satyakarri70 avatar Mar 04 '19 23:03 satyakarri70

@ Satyakarri70 - I tried adding the code as mentioned under TableauServerSignIn ->ExecuteRequest. public bool ExecuteRequest(), but still getting the error.

Can you please help with what else I need to look at

shaheenusman avatar Jul 11 '19 18:07 shaheenusman