gitee.com/h79/goutils@v1.22.10/rpc/tls/server.go (about)

     1  package tls
     2  
     3  import (
     4  	"crypto/tls"
     5  	commontls "gitee.com/h79/goutils/common/tls"
     6  	"google.golang.org/grpc/credentials"
     7  )
     8  
     9  type Server struct {
    10  	commontls.Tls
    11  }
    12  
    13  func (t *Server) GetCredentialsByCA() (credentials.TransportCredentials, error) {
    14  	cert, certPool, err := t.GetCredential()
    15  	if err != nil {
    16  		return nil, err
    17  	}
    18  
    19  	c := credentials.NewTLS(&tls.Config{
    20  		Certificates: []tls.Certificate{cert},
    21  		ClientAuth:   tls.RequireAndVerifyClientCert,
    22  		ClientCAs:    certPool,
    23  	})
    24  
    25  	return c, err
    26  }
    27  
    28  func (t *Server) GetTLSCredentials() (credentials.TransportCredentials, error) {
    29  	c, err := credentials.NewServerTLSFromFile(t.CertFile, t.KeyFile)
    30  	if err != nil {
    31  		return nil, err
    32  	}
    33  
    34  	return c, err
    35  }