我有一个 web 服务想要实现容器化,于是在新机器上部署了 k3s 集群( IP 与旧机器不同)
这个服务之前用的是手动签的一年有效期的免费 ssl 证书,想换成基于 cert-manager 自动续期的 let's encrypt 证书
为了尽可能降低不可用的时间,我希望是直接把新环境 ssl 配好之后改域名解析就完事
问题就出在新环境的 ssl 上,cert-manager 支持的两种验证方式 —— http 和 dns。前者行不通因为我希望是配好 ssl 再改解析;后者因为我用的是 dns.he.net ,不在它支持的 dns 列表里,似乎也不行
我有个初步的方案:先把旧证书放到新集群里,确保 https 访问正常,然后改解析,等生效后再将 Ingress 的 tls 配置改为 cert-manager ,让 cert-manager 通过 http 方式验证、签发证书
想问问各位还有没有更好的方案,尽可能降低不可用的时间。谢谢各位
1
Judoon 2023-04-04 14:51:37 +08:00 1
到旧机器上的 nginx (或者别的)加个路径解析,把 /.well-known ( le 验证请求时访问的路径)这个路径转发到新 ip ,然后用 http 验证。
这样就可以先申请再该域名指向。 但是我忘了 http 验证是否要求发起请求的 ip 和解析出来的 ip 相同了,如果要求一致那就不行 |
2
BeautifulSoap 2023-04-04 15:06:14 +08:00 1
我觉得 lz 想的方法已经是比较简单了
如果愿意折腾得话倒是还有个方法,用 DNS Webhook ,这个可以自己自定义不支持得 DNS 域名提供商 https://cert-manager.io/docs/configuration/acme/dns01/#webhook |
3
mokeyjay OP |