OpenShift内部服务间SSL证书自动化实现方向咨询
OpenShift内部服务SSL证书自动化的实现方向
针对你提到的内部服务域名(servicename.namespacename)证书自动化需求,这几个方案直接可用:
1. 用OpenShift内置的服务证书功能
OpenShift原生支持自动给内部服务生成并管理证书,完全不用额外部署工具:
- 只要创建了Service,OpenShift会自动在对应namespace生成一个
<service-name>-tls的Secret,里面包含tls证书、私钥和CA根证书 - 应用直接挂载这个Secret就能用,证书到期会自动轮转更新,无需人工干预
- 部署示例(加到Deployment里):
volumes: - name: service-certs secret: secretName: your-service-tls # 替换成你的服务名 containers: - name: your-app volumeMounts: - name: service-certs mountPath: /etc/ssl/internal readOnly: true
注意:默认的内部服务完整域名是servicename.namespacename.svc.cluster.local,证书会自动包含这个SAN。
2. 部署内部CA+Cert-Manager做灵活签发
如果需要自定义CA策略或者扩展更多证书场景,用Cert-Manager搭配内部CA是最优解:
- 先创建一个自签名根CA:可以用
openssl生成后导入成Secret,或者直接用Cert-Manager的ClusterIssuer生成自签名CA - 配置Cert-Manager的
Issuer指向这个内部CA,然后创建Certificate资源指定内部服务域名 - Cert-Manager会自动签发证书、更新Secret,到期自动续期,示例Certificate配置:
apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: my-service-cert namespace: my-namespace spec: secretName: my-service-tls dnsNames: - my-service.my-namespace.svc.cluster.local issuerRef: name: internal-root-ca-issuer # 你的内部CA Issuer名称 kind: Issuer
3. 对接公司内部PKI体系
如果公司已经有成熟的内部PKI,可以直接集成进来:
- 把公司的根CA证书导入OpenShift的集群级ConfigMap,让所有应用默认信任这个CA
- 配置Cert-Manager对接公司内部的PKI服务(比如支持ACME协议的内部CA,或者对接AD证书服务)
- 这样签发的证书直接受全公司信任,不用单独配置应用的信任链
内容的提问来源于stack exchange,提问作者bluemind
相关产品推荐
相关产品推荐

