登录
首页 >  Golang >  Go问答

grpc/go 如何在 grpc.Dial 中设置 grpc.ssl_target_name_override

来源:stackoverflow

时间:2024-04-27 23:57:34 500浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《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》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>