我在防火墙后面运行了两台(虚拟)主机。一台是 Web 服务器,另一台是邮件服务器。我的单个公共 IPv4 地址的相应端口在防火墙处转发到主机。
现在我想自动获取两个主机的 letsencrypt 证书(针对域 www.my.foo 和 mail.my.foo)。问题是,无法通过端口 80 或 443 访问邮件服务器(因为这些端口被转发到 Web 服务器),并且我无法通过某些 API 自动更新我的 DNS 设置。
ACME 协议中是否存在一些技巧可以在无需人工干预的情况下在邮件服务器上获取证书?
答案1
如果两台服务器位于同一局域网中,并且互相可见,则可以
- 在邮件服务器上安装一个 Web 服务器(或者使用
certbot certonly --standalone
. - 配置反向代理在面向互联网的网络服务器上。
/.well-known/acme-challenge/
如果您不介意邮件服务器有不同的主机名,那么对反向代理使用单独的虚拟主机可能会使您更容易使用命名空间两次。
如果您想将同一个证书用于两个目的,您可以rsync
在服务器之间简单地使用它,例如使用 cronjob。