diff --git a/transport/internet/tls/config.go b/transport/internet/tls/config.go index 75360989e..ec5659a0c 100644 --- a/transport/internet/tls/config.go +++ b/transport/internet/tls/config.go @@ -450,9 +450,13 @@ func (c *Config) GetTLSConfig(opts ...Option) *tls.Config { for _, s := range tls.CipherSuites() { id[s.Name] = s.ID } + for _, s := range tls.InsecureCipherSuites() { + id[s.Name] = s.ID + } for n := range strings.SplitSeq(c.CipherSuites, ":") { - if id[n] != 0 { - config.CipherSuites = append(config.CipherSuites, id[n]) + n = strings.TrimSpace(n) + if v, ok := id[n]; ok { + config.CipherSuites = append(config.CipherSuites, v) } } } diff --git a/transport/internet/tls/tls.go b/transport/internet/tls/tls.go index df5d1cbd7..0dfa7fe45 100644 --- a/transport/internet/tls/tls.go +++ b/transport/internet/tls/tls.go @@ -147,6 +147,11 @@ func GeneraticUClient(c net.Conn, config *tls.Config) *utls.UConn { } func copyConfig(c *tls.Config) *utls.Config { + curvePreferences := make([]utls.CurveID, 0, len(c.CurvePreferences)) + for _, curve := range c.CurvePreferences { + curvePreferences = append(curvePreferences, utls.CurveID(curve)) + } + config := &utls.Config{ Rand: c.Rand, RootCAs: c.RootCAs, @@ -156,6 +161,10 @@ func copyConfig(c *tls.Config) *utls.Config { KeyLogWriter: c.KeyLogWriter, EncryptedClientHelloConfigList: c.EncryptedClientHelloConfigList, NextProtos: c.NextProtos, + CipherSuites: c.CipherSuites, + MinVersion: c.MinVersion, + MaxVersion: c.MaxVersion, + CurvePreferences: curvePreferences, } return config }