2.6.3. 添加外部证书颁发机构密钥和证书
默认情况下,Red Hat OpenShift Service Mesh 生成自签名 root 证书和密钥,并使用它们为工作负载证书签名。您还可以使用用户定义的证书和密钥使用用户定义的 root 证书为工作负载证书签名。此任务演示了一个将证书和密钥插入 Service Mesh 的示例。
先决条件
- 您必须已安装了启用了 mutual TLS 配置证书的 Red Hat OpenShift Service Mesh。
- 本例使用 Maistra 仓库中的证书。对于生产环境,请使用您自己的证书颁发机构提供的证书。
- 您必须部署 Bookinfo 示例应用程序以按照以下说明验证结果。
2.6.3.1. 添加一个现有证书和密钥
要使用现有签名(CA)证书和密钥,必须创建一个信任文件链,其中包括 CA 证书、密钥和 root 证书。您必须为每个对应证书使用以下准确文件名称。CA 证书名为 ca-cert.pem
,密钥是 ca-key.pem
,签名 ca-cert.pem
的 root 证书名为 root-cert.pem
。如果您的工作负载使用中间证书,则必须在 cert-chain.pem
文件中指定它们。
按照以下步骤将证书添加到 Service Mesh。本地保存 Maistra repo 中的示例证书,,将 <path>
替换为证书的路径。
创建一个 secret
cacert
,其中包含输入文件ca-cert.pem
、ca-key.pem
、root-cert.pem
和cert-chain.pem
。$ oc create secret generic cacerts -n istio-system --from-file=<path>/ca-cert.pem \ --from-file=<path>/ca-key.pem --from-file=<path>/root-cert.pem \ --from-file=<path>/cert-chain.pem
在
ServiceMeshControlPlane
资源中将global.mtls.enabled
设置为true
,并将security.selfSigned
设置为false
。Service Mesh 从 secret-mount 文件中读取证书和密钥。apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: istio: global: mtls: enabled: true security: selfSigned: false
要确保工作负载迅速添加新证书,请删除名为
istio.*
的 Service Mesh 生成的 secret。在这个示例中,istio.default
。Service Mesh 为工作负载发布新证书。$ oc delete secret istio.default