I started to see errors on our calls to the Xero API, with status 412 returned. The initial clue was in this Xero Community post.
On windows 7 machines or older machines, you may need to install a fix to ensure that windows can handle TLS 1.1 or 1.2. I usually recommend this update as a first step as it mitigates not knowing how the underlying code, wrapper may work.
This led me to a post about TLS versions, with a useful piece of code to check the TLS version of your server:
<% Set objHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") objHttp.open "GET", "https://howsmyssl.com/a/check", False objHttp.Send Response.Write objHttp.responseText Set objHttp = Nothing %>
Running this I found the particular VM was showing TLS1.0, which is not good. I recalled I’ve seen something similar a few weeks ago on another project which was calling the Vimeo API, which now requires TLS1.2 or above.
This particular server is 2008 R2, and there’s a patch to upgrade your TLS to 1.2.
I used the Windows Catalog Update link in the article plus used the Registry EasyFix to sort the registry key out.
Now the TLS test code above is returning
And my calls to the Xero API are working.