traefik 启用并指定根证书*.cer

1、创建Secret 存放根证书

在 Kubernetes 集群的 kube-system 命名空间中创建一个名为 cfca-root-cert 的 Secret。

kubectl create secret generic cfca-root-cert \

--from-file=cfca_ev_root.cer=/home/ssl/CFCA_EV_ROOT.cer \

-n kube-system

2、在traefik-deploy.yaml中添加并挂载根证书

volumeMounts:

1. 容器内挂载配置:将 Secret 中的证书文件挂载到容器内指定路径

  • name: cfca-root-cert-volume # 挂载卷名称(自定义,需与下方一致)

mountPath: /etc/ssl/certs/cfca/cfca_ev_root.cer # 容器内最终路径(文件级挂载)

readOnly: true # 只读权限,防止修改

subPath: cfca_ev_root.cer # 明确指定挂载 Secret 中的 key(必填,避免目录覆盖)

volumes:

2. 挂载卷配置:关联 bigdata 命名空间的 cfca-root-cert Secret

secret:

secretName: cfca-root-cert # 你的 Secret 名称(不变)

items: # 映射 Secret 的 key 到容器内文件(确保名称一致)

  • key: cfca_ev_root.cer # 第一步查询到的 Secret key

path: cfca_ev_root.cer # 容器内的文件名(与 mountPath 后缀一致)

3、在traefik-config.yaml 挂载根证书

traefik.yaml: |-

根证书核心配置:替换原有 insecureSkipVerify: true,启用证书验证并指定根证书

serversTransport:

insecureSkipVerify: false ## 关闭"忽略证书验证",启用严格的 TLS 证书校验

rootCAs:

挂载的 CFCA 根证书路径(与 Traefik Deployment 挂载路径一致)

  • /etc/ssl/certs/cfca/cfca_ev_root.cer # 仅能写容器内的挂载路径,不能写宿主机路径

#serversTransport:

insecureSkipVerify: true ## Traefik 忽略验证代理服务的 TLS 证书

4、执行traefik配置更新

kubectl apply -f traefik-config.yaml

5、执行deployment 会自动重启traefik的pod

kubectl apply -f traefik-deploy.yaml

6、验证根证书是否挂载到了traefik 容器

kubectl exec -it -n kube-system traefik-v2-5954475db6-llblb -- cat /etc/ssl/certs/cfca/cfca_ev_root.cer

7、查看配置

kubectl exec -it -n kube-system traefik-v2-5954475db6-hbkgf -- cat /config/traefik.yaml

8、从外部访问业务域名(即使外层证书过期,也会触发 Traefik 与 Kong 的连接):

-k 忽略外层证书过期

curl -v https://www.bac.com --resolve www.bac.com:443:你的节点IP -k

相关推荐
吴声子夜歌38 分钟前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
悠悠121381 小时前
微服务通信别只看性能:REST 与 gRPC 的 6 个选型判断和一次 502 故障复盘
运维·服务器
xiaoye-duck2 小时前
《Linux 网络编程》深入理解 IP 协议(二):网段划分、私有 IP 与 NAT 地址转换
linux·网络·ip
云老大-阿里云国际站代理商3 小时前
华为云国际站服务代理商:NAT网关怎么配?多台ECS共用公网IP要注意什么
服务器·华为云·云计算
zx_741484813 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS3 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿3 小时前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
wdfk_prog4 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
做运维的阿瑞4 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
百万蹄蹄向前冲5 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql