diff --git a/etcd.go b/etcd.go index dc373fff3..c37f75776 100644 --- a/etcd.go +++ b/etcd.go @@ -135,7 +135,7 @@ func main() { var psListener net.Listener if psConfig.Scheme == "https" { - psListener, err = server.NewTLSListener(info.RaftListenHost, info.RaftTLS.CertFile, info.RaftTLS.KeyFile) + psListener, err = server.NewTLSListener(&tlsConfig.Server, info.RaftListenHost, info.RaftTLS.CertFile, info.RaftTLS.KeyFile) } else { psListener, err = server.NewListener(info.RaftListenHost) } @@ -165,7 +165,7 @@ func main() { var sListener net.Listener if tlsConfig.Scheme == "https" { - sListener, err = server.NewTLSListener(info.EtcdListenHost, info.EtcdTLS.CertFile, info.EtcdTLS.KeyFile) + sListener, err = server.NewTLSListener(&tlsConfig.Server, info.EtcdListenHost, info.EtcdTLS.CertFile, info.EtcdTLS.KeyFile) } else { sListener, err = server.NewListener(info.EtcdListenHost) } diff --git a/server/listener.go b/server/listener.go index dd3cfa9e1..f007f0cb3 100644 --- a/server/listener.go +++ b/server/listener.go @@ -16,11 +16,15 @@ func NewListener(addr string) (net.Listener, error) { return l, nil } -func NewTLSListener(addr, certFile, keyFile string) (net.Listener, error) { +func NewTLSListener(config *tls.Config, addr, certFile, keyFile string) (net.Listener, error) { if addr == "" { addr = ":https" } - config := &tls.Config{} + + if config == nil { + config = &tls.Config{} + } + config.NextProtos = []string{"http/1.1"} var err error