gitee.com/lh-her-team/common@v1.5.1/crypto/tls/http/http_server.go (about) 1 package http 2 3 import ( 4 "net" 5 "net/http" 6 7 "gitee.com/lh-her-team/common/crypto/tls/config" 8 9 cmtls "gitee.com/lh-her-team/common/crypto/tls" 10 ) 11 12 //NewTLSListener returns a listener with tls.Config, which support gmtls and tls 13 func NewTLSListener(inner net.Listener, config *cmtls.Config) net.Listener { 14 return cmtls.NewListener(inner, config) 15 } 16 17 //ListenAndServeTLS only supprot gmtls single cert mode. For gmtls, use NewTLSListener 18 func ListenAndServeTLS(addr, certFile, keyFile, caCertFile string, handler http.Handler) error { 19 cfg, err := config.GetConfig(certFile, keyFile, caCertFile, true) 20 if err != nil { 21 return err 22 } 23 ln, err := cmtls.Listen("tcp", addr, cfg) 24 if err != nil { 25 return err 26 } 27 defer ln.Close() 28 return http.Serve(ln, handler) 29 }