如何为通过Ingress暴露的Rancher Web UI配置自定义SSL证书
为Rancher Ingress配置通配符TLS证书操作步骤
你有两种可选配置方式,优先推荐第一种基于Helm参数更新的方式,避免后续Rancher升级时配置被覆盖。
方式一:通过更新Helm Release配置(推荐)
步骤1:将你的通配符证书保存为Kubernetes TLS类型Secret
提前准备好你的证书公钥文件(如tls.crt)和私钥文件(如tls.key),在Rancher默认安装的cattle-system命名空间下创建Secret:kubectl create secret tls rancher-wildcard-tls --cert=./tls.crt --key=./tls.key -n cattle-system如果你的证书是自签CA颁发的,还需要额外将根CA证书创建为Secret:
kubectl create secret generic tls-ca --from-file=cacerts.pem=./rootCA.crt -n cattle-system步骤2:执行Helm升级命令更新配置
替换下方命令中的<当前Rancher版本号>为你实际安装的Rancher版本,避免跨版本升级导致兼容问题:helm upgrade rancher rancher-stable/rancher \ --namespace cattle-system \ --set hostname=rancher.myexample.com \ --set ingress.tls.source=secret \ # 自签证书需要额外加下面这行参数 # --set privateCA=true \ --version <当前Rancher版本号>
方式二:手动修改Ingress资源配置(临时修改用)
如果不需要保留配置到后续Helm升级流程,可以直接修改已有的Rancher Ingress资源:
- 先按方式一的步骤1创建好TLS Secret
- 执行以下命令编辑Ingress:
kubectl edit ingress rancher -n cattle-system - 在
spec配置段下添加TLS配置,保存后自动生效:spec: tls: - hosts: - rancher.myexample.com secretName: rancher-wildcard-tls
配置验证
等待1-2分钟后访问https://rancher.myexample.com,查看浏览器地址栏的证书信息,确认是你提供的*.myexample.com通配符证书即可。
注意事项
- TLS Secret必须和Rancher Ingress位于同一个命名空间,否则Ingress无法读取证书
- 确认你的证书的使用者可选名称(SAN)包含
*.myexample.com,否则浏览器会提示连接不安全 - 手动修改Ingress的配置会在后续执行Rancher Helm升级时被默认覆盖,长期使用请优先选择方式一配置
内容的提问来源于stack exchange,提问作者Michael Chudinov
相关产品推荐
相关产品推荐

