go - grpc/go 如何在 grpc.Dial 中设置 grpc.ssl_target_name_override
问题描述
我目前正在尝试测试 grpc 客户端和服务器之间的 ssl/tls 身份验证。不知道如何通过 grpc.ssl_target_name_override( https://grpc.github.io/grpc/core/group__grpc__arg__keys.html#ga218bf55b665134a11baf07ada5980825 )
在客户端创建频道时,目前看到:
“传输:身份验证握手失败:x509:证书对 xxx.xxx.net 有效,而不是 localhost”
// 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)
}
解决方案
我必须在 NewClientTLSFromFile 函数中将 serverNameOverride 值设置为 xxx.xxx.net 并解决了问题。
// Create the client TLS credentials
creds, err := credentials.NewClientTLSFromFile("cert.pem", "xxx.xxx.net")
if err != nil {
panic(err)
}
推荐阅读
- php - 有没有办法让我在 php 中像 node.js 一样拥有一个控制台?
- android - Android studio 无法调试 Fragment
- python - 我怎样才能弄清楚为什么我的 mini-max tic-tac-toe AI 不起作用?
- android - Kotlin如何在队列中发出多个请求
- wpf - Wpf,C# - TabItem 标题中的上下文菜单
- google-cloud-platform - 在数据融合中实现 SCD type2
- sql - SQL Server:基于一列合并单元格
- javascript - 我有点击事件附加到元素
- ,但它只在第一次触发一次
- javascript - 如何根据值连接数组中的元素
- c - 如何获取文件描述符引用的文件指针?