现在网上大部分都是 grpc 相关的介绍,真正涉及到 grpc 的配置使用的文章还是比较少的
所以本系列着重介绍 grpc 开发时可以能会用到的一些配置
客户端创建连接的时候默认必须使用加密传输,否则会直接报错
2020/04/28 15:59:53 did not connect: grpc: no transport security set (use grpc.WithInsecure() explicitly or set credentials)
exit status 1
禁用安全传输
// client
conn, _ := grpc.Dial("localhost:50051", grpc.WithInsecure())
TLS 是一种常见的端对端安全传输协议
grpc 可以使用 credentials.TransportCredentials 结构来方便的开启安全传输
使用 credentials.NewServerTLSFromFile
生成 credentials.TransportCredentials
调用 grpc.NewServer
时传递 grpc.Creds
creds, err := credentials.NewServerTLSFromFile(certFile, keyFile)
if err != nil {
log.Fatalf("Failed to generate credentials %v", err)
}
lis, err := net.Listen("tcp", ":0")
server := grpc.NewServer(grpc.Creds(creds))
// ignore Serve error
server.Serve(lis)
生成 credentials.TransportCredentials
// serverNameOverride 用于测试, 通常为 "" 空字符串
func NewClientTLSFromCert(cp *x509.CertPool, serverNameOverride string) TransportCredentials
func NewClientTLSFromFile(certFile, serverNameOverride string) (TransportCredentials, error)
调用 grpc.Dial
时传递 grpc.WithTransportCredentials
creds, _ := credentials.NewClientTLSFromFile(certFile, "")
conn, _ := grpc.Dial("localhost:50051", grpc.WithTransportCredentials(creds))
example:encryption
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/DAGU131/article/details/105815620
内容来源于网络,如有侵权,请联系作者删除!