So recently I’ve developed a basic licensing system for a couple of Xojo developed apps I plan to start selling later this year. Server-client communications for this system where developed and tested using HTTP using the xojo.Net.HTTPSocket.
This week I bought and installed a RapidSSL certificate on the server. I switched over to HTTPS in my Xojo code, and things are working fine from my home PC, and on two of my client’s PCs. BUT, from my work PC, the PageReceived event is for some reason never raised.
I decided to do some investigation using the classic HTTPSecureSocket, and made some interesting findings. First I will show the code that does NOT work, then I will show how I got the HTTPS connection to work using the classic HTTPSecureSocket.
Code that does NOT work:
xojo.Net.HTPPSocket:
NewSocket.Send("GET", "https://www.zoclee.com")
HTTPSecureSocket:
ClassicSocket.Secure = true
ClassicSocket.Get("www.zoclee.com")
Now how I got the connection to work with the classic HTTPSecureSocket:
ClassicSocket.Secure = true
ClassicSocket.ConnectionType = SSLSocket.SSLv23
ClassicSocket.Get("www.zoclee.com")
OR
ClassicSocket.Secure = true
ClassicSocket.ConnectionType = SSLSocket.TLSv12
ClassicSocket.Get("www.zoclee.com")
All the other connection types fails. So to summarize, from my work PC I can establish comms using the classic HTTPSecureSocket as long as I set the ConnectionType on the CLASSIC socket to either SSLv23 or TLSv12. But these settings does not seem to be an issue from my home and client’s PCs?
The major problem is if I run into the problem at my work PC it is bound to happen on some future clients’ PCs as well, and I need to find a proper fix for this.
Is there a way to specify this connection type on the xojo.Net.HTTPSocket? or does anyone perhaps understand the above scenario?
I would REALLY LIKE to move forward with the xojo.Net.HTTPSocket, instead of falling back to HTTP 1.0 with the classic socket as a workaround.
Any help, information or suggestions would be much appreciated.