添加 TLS 密文

我们使用证书和密钥将 cattle-system 命名空间中的 tls-rancher-ingress 密文配置好后,Kubernetes 会为 Rancher 创建对象和服务。

将服务器证书和所需的所有中间证书合并到名为 tls.crt的文件中。将证书密钥复制到名为 tls.key 的文件中。

例如,https://acme.sh[acme.sh] 在 fullchain.cer 文件中提供服务器证书和 CA 链。 请将 fullchain.cer 命名为 tls.crt,将证书密钥文件命名为 tls.key

使用 kubectl 创建 tls 类型的密文。

kubectl -n cattle-system create secret tls tls-rancher-ingress \
  --cert=tls.crt \
  --key=tls.key

如需替换证书,你可以运行 kubectl -n cattle-system delete secret tls-rancher-ingress 来删除 tls-rancher-ingress 密文,然后运行上方命令来添加新的密文。如果你使用的是私有 CA 签名证书,仅当新证书与当前证书是由同一个 CA 签发的,才可以替换。

使用私有 CA 签名证书

如果你使用的是私有 CA,Rancher 需要私有 CA 的根证书或证书链的副本,Rancher Agent 使用它来校验与 Server 的连接。

创建一个名为 cacerts.pem 的文件,该文件仅包含私有 CA 的根 CA 证书或证书链,并使用 kubectlcattle-system 命名空间中创建 tls-ca Secret。

kubectl -n cattle-system create secret generic tls-ca \
  --from-file=cacerts.pem

Rancher 启动时会检索配置的 tls-ca 密文。如果 Rancher 在运行中,更新的 CA 会在新的 Rancher Pod 启动后生效。

更新私有 CA 证书

按照步骤更新 Rancher 高可用 Kubernetes 安装中的 Ingress,或从默认自签名证书切换到自定义证书。