当前位置: > > > > grpc/go 如何在 grpc.Dial 中设置 grpc.ssl_target_name_override
来源:stackoverflow
2024-04-27 23:57:34
0浏览
收藏
各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《grpc/go 如何在 grpc.Dial 中设置 grpc.ssl_target_name_override》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!
问题内容
我目前正在尝试在 go 中测试 grpc 客户端和服务器之间的 ssl/tls 身份验证。不知道如何通过 grpc.ssl_target_name_override(https://grpc.github.io/grpc/core/group__grpc__arg__keys.html#ga218bf55b665134a11baf07ada5980825)
在客户端创建通道时,当前看到以下内容:
“传输:身份验证握手失败:x509:证书对于 xxx.xxx.net 有效,而不是本地主机”
// Create the client TLS credentials creds, err := credentials.NewClientTLSFromFile("cert.pem", "") if err != nil { panic(err) } conn, err := grpc.Dial("localhost:8080", grpc.WithTransportCredentials(creds)) if err != nil { panic(err) }
我看到其他语言的文档:https://grpc.github.io/grpc/cpp/classgrpc_1_1_channel_arguments.html#a42313e3360b50c354c68572e7bf5bccb
正确答案
我必须在 newclienttlsfromfile 函数中将 servernameoverride 值设置为 xxx.xxx.net,这解决了问题。
// Create the client TLS credentials creds, err := credentials.NewClientTLSFromFile("cert.pem", "xxx.xxx.net") if err != nil { panic(err) }
以上就是《grpc/go 如何在 grpc.Dial 中设置 grpc.ssl_target_name_override》的详细内容,更多关于的资料请关注公众号!