添加 TLS 密文
我们使用证书和密钥将 cattle-system
命名空间中的 tls-rancher-ingress
密文配置好后,Kubernetes 会为 Rancher 创建对象和服务。
将服务器证书和所需的所有中间证书合并到名为 tls.crt
的文件中。将证书密钥复制到名为 tls.key
的文件中。
例如,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 证书或证书链,并使用 kubectl
在 cattle-system
命名空间中创建 tls-ca
Secret。
kubectl -n cattle-system create secret generic tls-ca \
--from-file=cacerts.pem=./cacerts.pem
备注
Rancher 启动时会检索配置的 tls-ca
密文。如果 Rancher 在运行中,更新的 CA 会在新的 Rancher Pod 启动后生效。
更新私有 CA 证书
按照步骤更新 Rancher 高可用 Kubernetes 安装中的 Ingress,或从默认自签名证书切换到自定义证书。