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 }