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  }