diff --git a/pkg/transport/keepalive_listener.go b/pkg/transport/keepalive_listener.go index cc7ed9e71..6f580619a 100644 --- a/pkg/transport/keepalive_listener.go +++ b/pkg/transport/keepalive_listener.go @@ -16,6 +16,7 @@ package transport import ( "crypto/tls" + "fmt" "net" "time" ) @@ -28,7 +29,10 @@ func NewKeepAliveListener(addr string, scheme string, info TLSInfo) (net.Listene return nil, err } - if !info.Empty() && scheme == "https" { + if scheme == "https" { + if info.Empty() { + return nil, fmt.Errorf("cannot listen on TLS for %s: KeyFile and CertFile are not presented", scheme+"://"+addr) + } cfg, err := info.ServerConfig() if err != nil { return nil, err diff --git a/pkg/transport/keepalive_listener_test.go b/pkg/transport/keepalive_listener_test.go index f9458436a..b8317dc93 100644 --- a/pkg/transport/keepalive_listener_test.go +++ b/pkg/transport/keepalive_listener_test.go @@ -62,3 +62,10 @@ func TestNewKeepAliveListener(t *testing.T) { conn.Close() tlsln.Close() } + +func TestNewKeepAliveListenerTLSEmptyInfo(t *testing.T) { + _, err := NewListener("127.0.0.1:0", "https", TLSInfo{}) + if err == nil { + t.Errorf("err = nil, want not presented error") + } +}