问题描述
在我们公司的内部网络中,我们有自签名证书,用于在 DEV 或暂存环境中运行的应用程序。对于我们的本地机器,它已经受到信任,因为 Active Directory 使用组策略对象提供了这一点。但是在 Kubernetes(Openshift) 世界中,我们必须做一些额外的操作来提供成功的 SSL/TLS 流量。
在相关应用的Dockerfile中,我们将证书复制到容器中,并在构建Docker镜像时信任它。之后,从容器中运行的应用程序向使用该自签名证书提供服务的 HTTPS 端点的请求成功。否则会出现“无法建立SSL/TLS安全通道”之类的错误
copY ./mycertificate.crt /usr/local/share/ca-certificates/
RUN chmod 644 /usr/local/share/ca-certificates/mycertificate.crt && update-ca-certificates
但是,我认为这不是最好的方法。当证书过期时,它需要大量的操作工作。短期内很难管理和维护。我想知道处理这个问题的有效方法是什么。
预先感谢您的支持。
解决方法
Best 是高度相关的,但您可以先将其提取到 ConfigMap 中并将其安装到您的容器中。这将更新它的所有工作推到运行时,但引入了相当多的复杂性。这取决于它更改的频率以及您可以在多大程度上自动进行重建/重新部署。
,通常应该由 OpenShift 管理员使用以下文档在集群范围内进行配置,以便您的容器默认信任您的内部根 CA (additionalTrustBundle
):