Https golang:使用证书发送http请求

Https golang:使用证书发送http请求,https,go,Https,Go,首先,我是golang的新手 我尝试发送https请求。我创建http.Client如下: func httpClient(c *Config) (httpClient *http.Client) { cert, _ := tls.LoadX509KeyPair(c.CertFile, c.KeyFile) ssl := &tls.Config{ Certificates: []tls.Certificate{cert}, InsecureSkipVerif

首先,我是golang的新手

我尝试发送https请求。我创建http.Client如下:

func httpClient(c *Config) (httpClient *http.Client) {
cert, _ := tls.LoadX509KeyPair(c.CertFile, c.KeyFile)

ssl := &tls.Config{
    Certificates:       []tls.Certificate{cert},
    InsecureSkipVerify: true,
}

ssl.Rand = rand.Reader
return &http.Client{
    Transport: &http.Transport{
        TLSClientConfig: ssl,
    },
}
}
但结果我得到了
本地错误:没有重新协商


谢谢你的帮助

这可能是您正在访问的远程服务器的问题,但这是一个已知的问题(例如Microsoft Azure服务)

go1.4可能会有一个解决方案,但在此之前,go客户端仍然不支持TLS重新协商


相关问题:

似乎以前不支持重新协商(和客户端证书身份验证)。这看起来已经被commit解决了

我以前看到过这个链接,但认为有人知道具体的解决方案。有趣的卷发可以帮我吗?我明天试试。谢谢你的回答!去吧,别帮我。我可以通过另一种方式执行相同的操作吗?您可以直接使用curl运行您想要的请求吗?这通常是解决问题的好方法。是的,我尝试通过下一个代码运行所需的请求:
curl-X POST--cacert/Users/sergio/.ssh/betfair.crt--data“username=username&password=password”---header“Content-Type:application/X-www-form-urlcoded”--header“X-application:application\u KEY” https://identitysso.betfair.com/api/certlogin
或by go curl,但结果始终相同:
{“登录状态”:“需要认证”}
。据我所知,附上证书有问题<代码>curl 7.30.0(x86_64-apple-darwin13.0)libcurl/7.30.0安全传输zlib/1.2.5。。。这是非常有趣的:在Ubuntu 14.04的服务器上都可以,但在我的本地MacOS10.9上有问题。