【问题标题】:Supported http cipher suites in go?go 中支持的 http 密码套件?
【发布时间】:2020-03-12 04:15:32
【问题描述】:

是否支持这些用于 http 客户端的密码套件?

  • AES128-SHA
  • AES256-SHA
  • DHE-RSA-AES128-SHA
  • DHE-RSA-AES256-SHA
  • ECDHE-RSA-AES256-SHA

连接服务器时握手失败。

更新:

我将一个 .p12 和一个 .pem 文件读入 tls.Config,然后在 http.Transport 中使用。最后一行 client.Post 返回错误“握手失败”,这不是很有帮助。

我发现上面的密码是服务器允许的密码。

b, err := ioutil.ReadFile("cert.p12")
    if err != nil {
        fmt.Println(err)

    }
    rootCA, err := ioutil.ReadFile("rootcert.pem")
    if err != nil {
        log.Fatalf("reading cert failed : %v", err)
    }

    password := "password"
    privateKey, cert, caCertificates, err := pkcs12.DecodeChain(b, password)
    if err != nil {
        fmt.Println(err)
    }

    pool := x509.NewCertPool()
    pool.AddCert(caCertificates[0])
    pool.AddCert(caCertificates[1])
    pool.AppendCertsFromPEM(rootCA)

    certificate := tls.Certificate{
        Certificate: [][]byte{cert.Raw},
        PrivateKey:  privateKey,
        Leaf:        cert}

    conf := &tls.Config{
        Certificates: []tls.Certificate{certificate},
        RootCAs:      pool,
        MinVersion:   tls.VersionTLS11,
        ServerName:   "api.example.com"}

    transport := &http.Transport{TLSClientConfig: conf}
    client := &http.Client{Transport: transport}
    res, err := client.Post("api.example.com", "application/json", bufferObject)

【问题讨论】:

  • tls 包支持TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA。没有更多信息,我们无能为力
  • 您似乎正在为密码套件使用速记 OpenSSL 符号。寻找 TLS RFC 中指定的那些可能会为您提供更好的信息。
  • 谢谢两位。我已经更新了代码。
  • 握手失败可能有很多原因,例如密码不匹配、客户端证书丢失或错误、曲线不受支持...。不幸的是,如果没有关于客户端和服务器的更多信息,这很难调试。是的,TLS 错误消息通常没有那么有用,因为在大多数情况下,客户端收到的所有消息都是“出了点问题”,这就是服务器关闭连接的原因。因此,请提供足够的信息,以便其他人可以实际重现此问题,然后可以尝试提供更好的帮助。
  • 是的,这会很有帮助。可悲的是,我无权访问服务器。我将不得不进一步调查......

标签: go ssl encryption


【解决方案1】:

所以解决方案原来是使用 client.Do 而不是 http.Post

req, _ := http.NewRequest("POST", "example.com/api", mockjson)
req.Header.Set("Content-Type", "application/json")

client := &http.Client{Transport: transport}
resp, _ := client.Do(req)

不确定内部差异

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多