是否可以使用公共证书直接公开 L4 负载均衡器后面的服务器?
该服务器位于 Kubernetes pod 内。它前面有一个 TCP 负载均衡器服务,它创建外部 L4 LB。
我的问题是 TLS 流量没有到达 pod 内的容器。因此,如果您成功使用了类似的配置,我很想知道。
更新
我没有提到流量是GRPC。
这是我所做的:我有一个域和相应的官方证书。我想保护 grpc 连接。
我尝试了两种方法:
- 使用 google ESP 容器,我将证书作为 nginx 机密,将其传递给容器,设置 ssl 端口。在同一个 pod 的 ESP 后面,我有我的 grpc 服务器
在这种情况下,我在客户端收到这样的消息:
D0610 14:38:46.246248584 32401 security_handshaker.cc:176] 安全握手失败:{"created":"@1591792726.246234613","description":"握手失败","file":"../deps/grpc/src/核心/lib/security/transport/security_handshaker.cc","file_line":291,"tsi_code":10,"tsi_error":"TSI_PROTOCOL_FAILURE"}
我看到一些与wireshark的TLS交换,但没有登录esp。
- 没有 ESP,我将证书放在我的 GRPC 服务器中。那里的 GRPC 服务器失败了,如下所示:
错误:1408F10B:SSL 例程:ssl3_get_record:错误的版本号
在google ESP 文档中,我看到我必须证明该域属于我并上传证书(但在哪里)?
更新 2
截至今天,我没有看到任何证据表明它是可行的。
IMO,主要问题是L4具有与证书域名对应的IP。因此,Pod 没有正确的 IP 来证明他们可以使用证书,因此他们对根的请求被拒绝(我没有证据证明这一点,因为我无法从 ESP 中的 nginx 获取调试信息。我已经看到了使用纯 GRPC 服务器解决方案请求)。