Hi,
I am attempting to use go as a client for my Azure hosted SSL-enabled WebAPI. While I can call the WebAPI from pretty much anywhere (browsers, .NET, python clients),
my test client is very basic (please note that
api.test.com is not a real address):
...
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
client := &http.Client{Transport: tr}
if err != nil {
panic(err)
}
...
using Wireshark on Windows, I believe that i've narrowed the problem down to the type of "client hello" packet that is sent and server response to it.
When using a browser/.NET/python client:
52 3.943110000 192.168.1.5 137.117.9.212 TLSv1.2 268 Client Hello (dissector shows this as TLS v1.2)
response ->
57 2.888174000 137.117.9.212 192.168.1.5 TLSv1.2 191 Server Hello, Change Cipher Spec, Encrypted Handshake Message
When using the GO client:
19 5.207428000 192.168.1.5 137.117.9.212 SSL 199 Client Hello (dissector shows this as TLS v1.0)
response ->
12 1.299626000 137.117.9.212 192.168.1.5 TCP 60 443→15179 [RST, ACK] Seq=1 Ack=122 Win=0 Len=0 (note that this is a RESET, ACK response)
Any clue as to what could be the issue? I understand that it may be that Azure LB/servers are rejecteing non TLS v1.2 packets
but is it possible to change that in go?
Thanks in advance,
--israelchen
N.B. go is awesome!