技术解析

用 Let's Encrypt 加密,如果有多台 reverse proxy,那怎么得到证书呢?
0
2021-05-14 03:13:49
idczone

以前只有一台前端 proxy 时,官方认证工具我都是装在 proxy 端的,proxy -> 源 是走 http ,现在需要多台 proxy ,那怎么处国外服务器理好?在每个 proxy 都运行认证工具来取得证书应该不行吧,难道要想个办法在其中一台运行认证工具,再定时同步生成的证书到所有别的 proxy 上去?

PS. 我用的是官方工具,在 web root 下加文件的方式。


有多台 proxy 肯定是需要在每台上都部署证书的,你说的思路应该就是通常的做法

在每台上都运行工具来得到 /更新同一个域名的证书没有问题吗?

有问题啊,用一台机器更新证书,其他的机器和它同步

打算换用 acme.sh 的 dns 方式。用官方的 web 方式是有验证问题, acme.sh 的 dns 方式我不确定分别在不同的机器上分别签发有没有问题。目前还是打算麻烦点在本地 dns 方式得到证书并定期同步到所有服务器算了。

用 dns 方式当然是首选了, 你可以在多个 proxy 上同时申请.
如果你用 http 回源的方式也可以. 通过 `--post-hook` 来通过 ssh 命令部署到所有的 proxy 上.

Caddy Automatic TLS

用 Certbot ,计划任务定时更新的时候顺便同步到其他服务器

也可以使用我写的 SSL.md ,昨天刚加的 API ,几台服务器定期去 wget 就行了,如果已签发证书过期时间距离现在不到 20 天 API 就会返回新证书,否则返回旧证书,几台服务器去抓,第一个抓到的会续签证书,后面几个得到的证书回和第一台拿到的相同,不会出现重复签发的问题。
https://www.v2ex.com/t/323677

话说如果用 acme.sh 在不同的服务器上同一时间分别用 dns 方式签证书会有问题吗?会分别在不同的 proxy 上得到不同的证书内容吗?如果内容不同是不是会有问题?(文档里没提这个,刚才本地试了下好象每次重签内容都不同)
我还是想偷个懒,如果没问题的话只要在每个服务器上运行个脚本设置下就行了,就省了同步了这个麻烦事了。

不是说单个 IP 每天申请的数量有上限吗?

有上限,每周每个域名 20 个证书,每个证书可以重复 5 次。

https://letsencrypt.org/docs/rate-limits/
似乎签发证书的数量限制仅针对域名,不针对 ip

噢噢噢噢……原来是这样!谢谢大佬指点!

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服