当前位置: 首页 > 知识库问答 >
问题:

grpc/go如何设置grpc。grpc中的ssl\u目标\u名称\u覆盖。拨号

刘向阳
2023-03-14

我目前试图在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

共有1个答案

叶谦
2023-03-14

我必须将serverNameOverride值设置为xxx。xxx。net在NewClientTLSFromFile函数中,并修复了该问题。

// Create the client TLS credentials
    creds, err := credentials.NewClientTLSFromFile("cert.pem", "xxx.xxx.net")
    if err != nil {
        panic(err)
    }
 类似资料:
  • 是否有任何CLI可以像gRPC\u CLI那样调用gRPC Web服务? 我想测试在AWS上运行的gRPC Web服务。我无法使用grpc\u cli,因为grpc服务位于专用子网中,无法访问(我无法将该服务放在我们的ELB后面,因为ELB不支持Http/2)。

  • 在PHP应用程序中,我指定 输出数据格式如预期2020-01-31 21:21:47但当我添加 NLS\U DATE\U格式不生效,NLS\U TERRITORY将覆盖该格式。31.01.20

  • gRPC的Go实现:高性能,开源,通用的RPC框架,将移动和HTTP / 2放在首位。有关更多信息,请参见gRPC快速入门:运行指南。 安装 要安装此软件包,需要安装Go并在计算机上设置Go工作区。安装库的最简单方法是运行: $ go get -u google.golang.org/grpc 有了Go模块支持(Go 1.11+),只需import "google.golang.org/grpc"

  • 运行4 docker容器:服务器/客户端/nginx/mongo反向代理客户端似乎在端口4200上工作,我可以看到我的应用程序和路由工作。当尝试注册用户时,我请求下面的http客户端帖子到名为“myserver”的Docker容器,该容器应该调用api。我得到这个DNS错误消息。 当在resolv上查看NGINX容器时。conf(显示127.0.0.11),它是正确的dns Docker,用于解析

  • 我有这个代码来禁用GET API的客户端缓存: 当I curl-IAPI时,响应显示缓存控制:没有缓存,没有存储,必须重新验证,但不是Pragma或Expires。我想我用正确的方法来设置这些。GRPC不支持某些标头吗?

  • 我正在学习gRPC的C#快速入门教程。到了这一步,我必须使用以下命令生成gRPC代码: 它不起作用,运行上面的命令后,我在终端中得到的是: --grpc\u out:protoc gen grpc:系统找不到指定的路径。 我不知道为什么系统找不到路径,因为我在命令中更改了路径,使其指向需要执行的文件。