You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在k3d中为Bitnami MongoDB启用TLS时证书验证失败求助

问题解决:Bitnami MongoDB Helm Chart 自定义TLS证书配置失败

问题根源

你当前的mongodb-certs Secret只包含了CA证书和密钥,缺少MongoDB服务器所需的服务器证书和服务器密钥,导致Helm Chart自动生成了以Pod名称为CN的临时证书,这就是你通过openssl看到的陌生证书的来源。

修复步骤

1. 删除现有无效Secret

kubectl delete secret mongodb-certs

2. 创建包含完整证书文件的Secret

Bitnami MongoDB Chart要求自定义TLS Secret必须包含以下文件(文件名严格匹配):

  • mongodb-cert:你的服务器证书文件(对应你的certificate.cert)
  • mongodb-key:你的服务器密钥文件(对应你的key.pem)
  • mongodb-ca-cert:CA证书链文件(对应你的ca_chain.cert,优先使用完整链而非单一级CA)

执行创建命令:

kubectl create secret generic mongodb-certs \
  --from-file=mongodb-cert=./certificate.cert \
  --from-file=mongodb-key=./key.pem \
  --from-file=mongodb-ca-cert=./ca_chain.cert

3. 重新部署MongoDB Helm Release

helm upgrade mongodb bitnami/mongodb -f values.yaml

(替换mongodb为你的Helm Release名称,values.yaml为你的配置文件)

4. 验证证书并重新连接

检查服务器证书

端口转发后执行:

echo Q | openssl s_client -connect localhost:27017 -showcerts

此时应该能看到你自定义的服务器证书信息,CN不再是Pod名称。

测试连接

使用CA证书链文件进行验证:

mongo --tls --host localhost --tlsCAFile ./ca_chain.cert --tlsCertificateKeyFile ./certkey.pem

额外注意事项

  • 确保你的服务器证书的**SAN(Subject Alternative Name)**包含MongoDB的服务域名(如mongodb、mongodb.<namespace>.svc.cluster.local)和Pod主机名,否则会出现主机名验证失败的问题。如果缺少,需要重新生成证书并添加对应SAN。
  • 若启用客户端证书验证,还需在values.yaml中添加tls.clientAuth: required配置。

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:43:31