我目前正在尝试在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
发布于 2021-04-06 09:07:17
我必须在NewClientTLSFromFile函数中将serverNameOverride值设置为xxx.xxx.net,这解决了这个问题。
// Create the client TLS credentials
creds, err := credentials.NewClientTLSFromFile("cert.pem", "xxx.xxx.net")
if err != nil {
panic(err)
}https://stackoverflow.com/questions/66960720
复制相似问题