首页 > 解决方案 > 如何从服务器端访问 grpc 客户端 ssl 证书信息?

问题描述

我正在测试一个客户端/服务器 grpc 应用程序,因为这是一个测试,客户端和服务器都有自签名证书。我使用了 SslCredentials 和 SslServerCredentials (在服务器端,我传入证书和密钥,在客户端,我传入服务器证书和客户端证书和客户端密钥),握手工作正常。但是,当我尝试从服务器端访问客户端证书信息时,我发现 AuthContext 对象中根本没有相关信息(我打印了所有属性,并没有看到任何与客户端证书相关的信息)。我在这里想念什么?谢谢。

标签: authenticationsslgrpc

解决方案


是的,AuthContext工作。此外,您可以通过 gRPC 的通道跟踪库——Channelz 以编程方式访问凭证信息。

以下是如何设置它的示例:https ://github.com/grpc/grpc/tree/master/examples/python/debug

您要查找的信息位于套接字级别:https ://github.com/grpc/grpc/blob/master/src/proto/grpc/channelz/channelz.proto#L240

或者,您可以尝试使用命令行工具 ( https://github.com/grpc-ecosystem/grpcdebug ) 来可视化您从应用程序收集的跟踪数据。


推荐阅读