How do I specify the TLS version when using WebInputStream?

I have a plugin that uses a WebInputStream (with https URL) to connect to my website. On most computers, it works fine. On an older iMac with OS X 10.10, it doesn’t connect. There is no response in the WebInputStream, so I assume there was an error connecting. There are messages in Console abouth SSLHandshake failed. So, I am guessing that the older mac is using an older TLS version (?). My website supports v1.2 and v1.3. I’m not sure how to determine what TLS version is being used. I don’t have a development environment on this older computer - just an installed binary plugin. Chrome has no problem accessing my website on the same computer and indicates that it is using TLS 1.3.

How do I control what version of TLS is used when I use WebInputStream? Or, as a start, how do I determine what version is being used on a given computer?

1 Like

I also experience this problem on a regular basis.

It’s strange as well because users are able to connect to the internet via a JUCE app which is not running in the plugin. For these users I send a standalone auth app — but it’s not ideal and I’ve not been able to track down the root cause

Yeah, I don’t fully understand what WebInputStream uses to connect, but whatever it is…it seems dependent on the OS that the plugin is running on. And I confirmed it uses TLS v1.1 on OS X 10.10. My plugin is contacting my website, and so I control both ends. My solution was to change from using my webhost nameservers (and they require TLS v1.2+) over to cloudflare.com nameservers. No cost for cloudflare basic service and I did not see any change in website performance. In cloudflare I can set the minimum acceptable TLS to 1.1. It sort of acts as a go-between and somehow it all works.

Long term, I might look into using libcurl in place of WebInputStream.