信任证书
当配置客户端连接到使用私有 CA 签名的服务证书的 TLS 服务器时,您需要向客户端提供 CA 证书,以便其验证服务器。 ca.crt
可能包含您需要信任的证书,但 **不要将与服务器相同的 Secret
挂载到 ca.crt
。** 这是因为
- 该
Secret
还包含服务器的私钥,该私钥应该只对服务器可见。您应该使用 RBAC 来确保包含服务证书和私钥的Secret
只能被需要它的 Pod 访问。 - 安全地轮换 CA 证书依赖于能够同时信任旧的和新的 CA 证书。有关更多详细信息,请参阅 常见问题解答。
在配置客户端时,您应该独立选择和获取要信任的 CA 证书。下载 CA 证书并将其存储在 Secret
或 ConfigMap
中,与包含服务器私钥和证书的 Secret
分开。
trust-manager 可用于管理这些证书,并自动将其分发到多个命名空间。
这确保了如果包含服务器密钥和证书的 Secret
中的内容被篡改,客户端将无法连接到被破坏的服务器。
当配置服务器进行双向认证的 TLS 时,也适用相同的概念;不要让服务器访问包含客户端证书和私钥的 Secret。