前情提要:
最近,把TrueNAS 中的app traefik 升级(2.11 –> 3.5.4 )。
结果发现,使用traefik反代的https流量,证书都变为traefik 的自签名证书了 ,修改app 中的证书关联项也不成功。
而升级前,app 中都是可以关联我通过ACME 自动更新的签名证书 。
注意:
我的TrueNAS 版本是: TrueNAS-SCALE-23.10.2
该版本还在使用K3S 管理app服务。
于是又有了一篇,折腾后的文章。
使用K3S secret的办法手动指定证书
优点
- 符合 Kubernetes 最佳实践
- 证书存储在 Kubernetes 内部,更安全
- 更新证书只需更新 Secret,无需重启 Traefik 应用配置
- 可以在多个 IngressRoute 中重复使用
缺点
- 需要手动创建和管理 Secret
执行以下步骤创建traefik 的secret
TrueNAS 系统的证书文件都在 /etc/certificates/ 文件夹下。
1. 创建 Secret
|
|
2. 验证 Secret
|
|
日志:
|
|
测试是否生效:
1. 创建一个测试 IngressRoute
|
|
2. 应用上述测试配置
|
|
3. 使用curl 测试证书生效情况
|
|
其中证书部分时间可以看出,ACME 证书已经生效了——
Server certificate:
- subject: CN=home.nxlan.cn
- start date: Dec 22 01:53:44 2025 GMT
- expire date: Mar 22 01:53:43 2026 GMT
- issuer: C=US; O=Let’s Encrypt; CN=E7
最后,在app 中关联secret 证书
1. 点击TrueNAS 中的 “应用”
2. 编辑已关联traefik 的app,找到“TLS-Settings” 部分,关联刚设置好的secret
应用生效。
3. 最后,访问app web 页面
浏览器不再提示“证书错误”,至此所有操作完成。