imroc / req

Simple Go HTTP client with Black Magic
https://req.cool
MIT License
4.25k stars 347 forks source link

自定义TLSClientConfig未生效 #389

Closed lcvvvv closed 3 days ago

lcvvvv commented 3 days ago

我的环境信息

GoVersion : go version go1.23.0 darwin/amd64
req version: github.com/imroc/req/v3 v3.46.1

我尝试了多种方式配置TLSClientConfig,均未能生效


func TestReqSSL(t *testing.T) {
    cli1 := req.C()
    cli1.GetTLSClientConfig().CipherSuites = tlsConfig.CipherSuites
    cli1.GetTLSClientConfig().MinVersion = tlsConfig.MinVersion
    cli1.GetTLSClientConfig().InsecureSkipVerify = tlsConfig.InsecureSkipVerify
    resp1 := cli1.Get("https://223.112.131.162:10001/").Do()
    fmt.Println(resp1.Err)

    cli2 := req.C()
    cli2.Transport.TLSClientConfig = tlsConfig
    cli2.SetTLSClientConfig(tlsConfig)
    resp2 := cli2.Get("https://223.112.131.162:10001/").Do()
    fmt.Println(resp2.Err)

    httpCli := &http.Client{Transport: &http.Transport{TLSClientConfig: tlsConfig}}
    httpResp, err := httpCli.Get("https://223.112.131.162:10001/")
    fmt.Println(httpResp.StatusCode, err)
}

var tlsConfig = &tls.Config{
    InsecureSkipVerify: true,
    MinVersion:         tls.VersionTLS10,
    CipherSuites: []uint16{
        tls.TLS_RSA_WITH_RC4_128_SHA,
        tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA,
        tls.TLS_RSA_WITH_AES_128_CBC_SHA,
        tls.TLS_RSA_WITH_AES_256_CBC_SHA,
        tls.TLS_RSA_WITH_AES_128_CBC_SHA256,
        tls.TLS_RSA_WITH_AES_128_GCM_SHA256,
        tls.TLS_RSA_WITH_AES_256_GCM_SHA384,
        tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
        tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
        tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
        tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
        tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
        tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
        tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
        tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
        tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
        tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
        tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
        tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
        tls.TLS_AES_128_GCM_SHA256,
        tls.TLS_AES_256_GCM_SHA384,
        tls.TLS_CHACHA20_POLY1305_SHA256,
        tls.TLS_FALLBACK_SCSV,
        tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,
        tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
    },
}

上述代码执行结果如下

Get "https://223.112.131.162:10001/": EOF
Get "https://223.112.131.162:10001/": EOF
200 <nil>