文档中心
Rancher娣诲姞SSL璇佷功鍏ㄦ敾鐣ヤ粠闆跺紑濮嬪疄鐜板畨鍏ㄥ姞瀵嗚闂?txt
时间 : 2025-09-27 16:32:07浏览量 : 3

作为Kubernetes管理平台的标杆,Rancher在生产环境中必须配置SSL证书来保障通信安全。本文将手把手教你三种主流方式为Rancher添加SSL证书,并通过真实案例解析常见问题。
一、为什么Rancher必须配置SSL证书?
想象一下这样的场景:某公司运维人员通过HTTP协议访问Rancher控制台时,黑客在同一个咖啡厅WiFi下成功截获了管理员账号密码(这就是经典的"中间人攻击")。而启用HTTPS后:
1. 所有传输数据都会像被装进防弹保险箱
2. 浏览器地址栏会显示绿色小锁标志
3. 满足等保2.0三级要求中的传输加密条款
> 真实案例:2025年某跨境电商因未配置SSL证书,导致攻击者通过ARP欺骗获取Rancher权限,最终删除了生产环境所有Pod,造成直接损失230万美元。
二、三种主流配置方案详解
方案1:自签名证书(测试环境推荐)
适合本地开发环境快速搭建,但浏览器会显示警告(就像自制身份证,虽然能用但大家不认):
```bash
生成自签名证书
openssl req -x509 -newkey rsa:4096 \
-nodes -keyout rancher.key \
-out rancher.crt -days 365 \
-subj "/CN=rancher.mycompany.com"
Rancher启动时加载
docker run -d --restart=unless-stopped \
-v /path/to/certs:/container/path \
-p 443:443 \
-e SSL_CERT_DIR="/container/path" \
rancher/rancher:latest
```
方案2:Let's Encrypt免费证书(个人项目首选)
如同自动发放的免费电子身份证,每90天需要续期:
使用certbot工具自动获取
sudo certbot certonly --standalone \
-d rancher.example.com \
--non-interactive --agree-tos \
--email admin@example.com
证书路径通常位于:
/etc/letsencrypt/live/rancher.example.com/
> 注意:Let's Encrypt对API有速率限制(每周50次申请),突***况可用`--test-cert`参数获取测试证书。
方案3:商业CA证书(企业生产环境必选)
类似公安局颁发的正规身份证,需要购买但浏览器100%信任。以DigiCert为例:
1. CSR生成:
```bash
openssl req -new -newkey rsa:2048 \
-nodes -keyout rancher.key \
-out rancher.csr
```
2. 将CSR文件提交给CA机构
3. 收到后合并证书链:
cat rancher.crt intermediate.crt root.crt > fullchain.pem
三、Nginx反向代理配置示例
多数生产环境会用Nginx做SSL卸载(就像专业的快递打包站):
```nginx
server {
listen 443 ssl;
server_name rancher.example.com;
ssl_certificate /etc/ssl/certs/fullchain.pem;
ssl_certificate_key /etc/ssl/private/rancher.key;
location / {
proxy_pass https://rancher-server;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
关键参数说明:
- `ssl_protocols TLSv1.2 TLSv1.3`
禁用老旧协议
- `ssl_ciphers HIGH:!aNULL:!MD5`
强密码套件
- `ssl_session_timeout 1d`
SSL会话缓存
四、常见故障排查指南
Q1:证书已配置但浏览器仍显示不安全
? 检查项:
- 证书链是否完整(可用[SSL Labs测试](https://www.ssllabs.com/ssltest/))
- 系统时间是否准确(误差超过5分钟会导致失效)
- Chrome按F12查看Console报错
Q2:Let's Encrypt续期失败报错"Too many requests"
? 解决方案:
临时切换其他ACME服务器
certbot renew --server https://acme-staging-v02.api.letsencrypt.org/directory
Q3:Ingress Controller报"x509: certificate signed by unknown authority"
? 根本原因:
自签名证书未被集群信任。解决步骤:
Kubernetes添加CA证书
kubectl create secret generic ca-secret \
--from-file=ca.crt=/path/to/ca.crt -n cattle-system
Rancher Helm values.yaml配置
privateCA: true
additionalTrustedCAs:
- name: my-ca
> 血泪教训:某金融公司因未同步更新CA证书导致全集群Ingress中断8小时。
五、进阶安全建议
1. HSTS强制HTTPS
在响应头添加`Strict-Transport-Security: max-age=63072000; includeSubDomains`
2. OCSP装订优化性能
Nginx配置增加:
```nginx
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
3. 定期轮换密钥
建议每90天执行:
```bash
openssl rand -hex 16 > new-session-ticket.key
通过以上步骤,你的Rancher平台将获得银行级的安全防护。记住在DevOps的世界里,"安全不是功能,而是基础属性"。
TAG:rancher 添加ssl证书,ssl证书配置教程,pro ssl安装证书,rancher添加主机,sslauncher,如何添加ssl证书