如何在 Python/C++ gRPC 客户端 API 中设置 TLS/SNI ( https://en.wikipedia.org/wiki/Server_Name_Indication )?
换句话说,什么等同于设置-servernamein openssl s_client?
我已经通过在以下位置使用正确的标志来验证我的 TLS 服务器是否正常工作openssl s_client:
openssl s_client -connect "myserver.tunnel.dev:4443" -servername "myserver.tunnel.dev"
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用 Python /C++ API 正确设置凭据:
uri = "myserver.tunnel.dev:4443"
hostname = "myserver.tunnel.dev"
creds = grpc.ssl_channel_credentials(
root_certificates=dev_cert)
# root_certificates=certificate_chain)
# certificate_chain=certificate_chain)
channel = grpc.secure_channel(uri, creds,
options=(('grpc.ssl_target_name_override', hostname),)
)
Run Code Online (Sandbox Code Playgroud)
这抛出:
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, Connect Failed)>
Run Code Online (Sandbox Code Playgroud)
在ChannelOptions结构中,我能找到的最接近的选项是ssl_target_name_override,它也不起作用。
| 归档时间: |
|
| 查看次数: |
1840 次 |
| 最近记录: |