pkg/transport/listener.go
func (info TLSInfo) ServerConfig() (*tls.Config, error) {
	cfg, err := info.baseConfig()
	if err != nil {
		return nil, err
	}

	cfg.ClientAuth = tls.NoClientCert
	if info.TrustedCAFile != "" || info.ClientCertAuth {
		cfg.ClientAuth = tls.RequireAndVerifyClientCert
	}

	cs := info.cafiles()
	if len(cs) > 0 {
		cp, err := tlsutil.NewCertPool(cs)
		if err != nil {
			return nil, err
		}
		cfg.ClientCAs = cp
	}

	// "h2" NextProtos is necessary for enabling HTTP2 for go's HTTP server
	cfg.NextProtos = []string{"h2"}

	return cfg, nil
}
func (info TLSInfo) ServerConfig() (*tls.Config, error) {
	cfg, err := info.baseConfig()
	if err != nil {
		return nil, err
	}

	cfg.ClientAuth = tls.NoClientCert
	if info.TrustedCAFile != "" || info.ClientCertAuth {
		cfg.ClientAuth = tls.RequireAndVerifyClientCert
	}

	cs := info.cafiles()
	if len(cs) > 0 {
		cp, err := tlsutil.NewCertPool(cs)
		if err != nil {
			return nil, err
		}
		cfg.ClientCAs = cp
	}

	// "h2" NextProtos is necessary for enabling HTTP2 for go's HTTP server
	cfg.NextProtos = []string{"h2"}

	return cfg, nil
}
func ( info TLSInfo ) ServerConfig ( ) ( * tls . Config , error ) { cfg , err := info . baseConfig ( ) if err != nil { return nil , err } cfg . ClientAuth = tls . NoClientCert if info . TrustedCAFile != " " || info . ClientCertAuth { cfg . ClientAuth = tls . RequireAndVerifyClientCert } cs := info . cafiles ( ) if len ( cs ) > 0 { cp , err := tlsutil . NewCertPool ( cs ) if err != nil { return nil , err } cfg . ClientCAs = cp } // "h2" NextProtos is necessary for enabling HTTP2 for go's HTTP server cfg . NextProtos = [ ] string { " " } return cfg , nil }
// ServerConfig generates a tls.Config object for use by an HTTP server.
ServerConfig generates a tls . Config object for use by an HTTP server .