How to test if a web-services client application supports TLS

httpsssltls

I have a client app that accesses an HTTPS web-service. It uses an external library for SSL support.

The service provider has advised they are dropping SSL 3 support and, from a specific date, will only support TLS 1.0 (or later) connections.

I can configure the client to, for example, access a test web-server on my PC (or a Linux server) using an HTTPS GET request.

How can I set up a test service, using something like Apache, or maybe Perl, to positively test whether the client supports TLS 1.0 or later?

Best Answer

I have not yet found a solution along the lines I was looking for. However there are online web-sites that report what level of SSL your client supports.

One (there may be others, I am not endorsing this one) is howsmyssl.com whose reports are like this:

Your SSL client is Bad.

Version: Good

Your client is using TLS 1.2, the most modern version of the encryption protocol. It gives you access to the fastest, most secure encryption possible on the web.
...

Insecure Cipher Suites: Bad

Your client supports cipher suites that are known to be insecure:
...

Which, in this case, shows that my client software supports >= TLS 1.0 and is not restricted to <= SSL 3

I'm posting this answer on the off-chance that someone else might, now or in future find it useful to verify protocol levels.


Footnote: See malgassar's later answer for a link to GitHub source code in Go language that could be used to implement a local test server along the lines I was originally looking for.

Related Question