gitee.com/h79/goutils@v1.22.10/rpc/tls/client.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 Client struct {
    10  	commontls.Tls
    11  	ServerName string `json:"serverName" yaml:"serverName" xml:"serverName"`
    12  }
    13  
    14  func (t *Client) GetCredentialsByCA() (credentials.TransportCredentials, error) {
    15  	cert, certPool, err := t.GetCredential()
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  
    20  	return credentials.NewTLS(&tls.Config{
    21  		Certificates: []tls.Certificate{cert},
    22  		ServerName:   t.ServerName,
    23  		RootCAs:      certPool,
    24  	}), nil
    25  }
    26  
    27  func (t *Client) GetTLSCredentials() (credentials.TransportCredentials, error) {
    28  	c, err := credentials.NewClientTLSFromFile(t.CertFile, t.ServerName)
    29  	if err != nil {
    30  		return nil, err
    31  	}
    32  	return c, err
    33  }