文档中心
OpenShiftSSL璇佷功閰嶇疆鍏ㄦ敾鐣ヤ粠鍏ラ棬鍒板疄鎴橀伩鍧戞寚鍗?txt
时间 : 2025-09-27 16:28:54浏览量 : 3

在当今云原生时代,OpenShift作为企业级Kubernetes平台,安全性是重中之重。而SSL证书就像给数据传输套上"防弹衣",但配置不当反而会引发"自爆"。本文将以网络安全工程师视角,用煮咖啡、寄快递等生活场景类比,带你彻底搞懂OpenShift证书那些事。
一、SSL证书在OpenShift中的核心作用(为什么需要?)
想象你在咖啡馆用公共Wi-Fi登录OpenShift控制台,没有SSL证书时:
1. 数据裸奔:就像把银行密码写在明信片上邮寄(HTTP明文传输)
2. 身份冒用:隔壁桌黑客可以伪装成官网(中间人攻击)
典型应用场景:
- Ingress流量加密:如同给快递包裹加铅封(HTTPS 443端口)
- 服务间mTLS:类似公司内部绝密文件必须用防拆信封(Service Mesh双向认证)
- 控制台防护:好比银行金库的双指纹认证(OAuth2+HTTPS)
二、证书类型选择指南(该用什么?)
1. 自签名证书 vs CA签发证书
| 类型 | 适合场景 | 风险提示 |
||-|-|
| 自签名 | 开发测试环境 | 浏览器会显示"不安全"红标 |
| Let's Encrypt | 临时公网服务 | 每3个月需续期 |
| 企业CA | 生产环境 | 需确保证书链完整 |
真实踩坑案例:某公司使用自签名证书部署生产环境,导致移动APP无法连接API,最终被迫停机8小时更换证书。
2. OpenShift特有证书类型
- Router默认证书:控制所有Ingress流量的"总闸门"
- API服务器证书:集群的"身份证"
- Etcd通信证书:节点间的"密语"
三、手把手配置实战(怎么做?)
场景1:替换默认Ingress证书
```bash
Step1:准备证书(含私钥和完整链)
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
Step2:创建secret
oc create secret tls my-certs --cert=cert.pem --key=key.pem -n openshift-ingress
Step3:更新Ingress配置
oc patch ingresscontroller/default -n openshift-ingress-operator \
--type=merge --patch='{"spec": { "defaultCertificate": { "name": "my-certs" }}}'
```
??常见错误:
- ERR_CERT_AUTHORITY_INVALID → CA根证书未加入信任库
- NET::ERR_CERT_DATE_INVALID → 系统时间不同步
场景2:为特定路由单独配置证书
```yaml
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: secure-app
spec:
host: app.example.com
tls:
certificate: |-
--BEGIN CERTIFICATE--
MIID...
--END CERTIFICATE--
key: |-
--BEGIN PRIVATE KEY--
MIIE...
--END PRIVATE KEY--
termination: edge
四、高级安全加固技巧(如何更安全?)
1. HSTS强制HTTPS
```yaml
annotations:
haproxy.router.openshift.io/hsts_header: max-age=63072000;includeSubDomains;preload
```
(相当于给浏览器装上"自动跳转HTTPS"的机械臂)
2. 定期轮换策略
- 使用Cert-Manager实现自动化续期
- CSR(证书签名请求)生命周期监控
3. Cipher Suite调优
```bash
oc set env dc/router ROUTER_CIPHERS="ECDHE-ECDSA-AES256-GCM-SHA384"
禁用老旧算法如同淘汰易撬的挂锁
五、故障排查工具箱(出问题怎么办?)
1. 诊断三板斧
```bash
openssl s_client -connect api.example.com:443 -showcerts
查看证书链
oc get secret/my-certs -o jsonpath='{.data.tls\.crt}' | base64 -d
验证集群内证书记录
curl -vk https://service.namespace.svc
测试服务间TLS
```
2. 日志分析要点
router pod日志中出现"no valid SNI" → 域名与证书不匹配
apiserver报"x509: certificate has expired or is not yet valid" →时间不同步
与最佳实践建议
根据OWASP ASVS标准,在OpenShift中实施SSL时应做到:
1??最小化有效期(不超过13个月)
2??启用OCSP装订提升性能
3??定期扫描发现SHA1等弱签名
记住:好的SSL配置应该像隐形保镖——用户无感知却全程守护。当你下次看到浏览器地址栏的小锁图标时,就知道这套防护体系正在默默工作。
TAG:openshift ssl证书,openssl ca证书,ssl证书 pem,ssl openssl,openssl制作ssl证书