目前我想公开一个 gRPC 方法作为公共(public) API 并受 Auth0(JWT token )保护,Istio(Envoy 代理)将有助于在服务器端验证 token 。由于 JWT Token 没有被标准加密(它仅用于最终用户身份验证和授权层),我想使用 TLS 加密通信。另外,我的公共(public)服务器已经有有效的证书。
问题出在 gRPC 客户端。我看的每个示例,gRPC 客户端都必须使用服务器证书 pem 文件初始化 TLS 连接。真的有必要吗?因为它增加了操作负担和复杂性,所以我们必须在每次更新证书和/或客户端必须重新启动应用程序时分发我们的服务器 pem 文件。
谢谢, 阿贡
最佳答案
如果您使用的是自签名证书,那么是的,您必须在您的客户端中明确信任它。如果您在服务器上使用公开签名的证书,gRPC 将使用操作系统的证书颁发机构来验证证书。 (对于 Java,它使用 JVM 证书颁发机构。)
关于ssl - 如何在没有服务器证书的情况下配置通过 TLS 传输层通信的 gRPC 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500939/