我正在设置 Let's Encrypt 以自动颁发证书。每个用户都有自己的子域,因此我需要每隔几个小时批量创建证书,以避免 LE 的速率限制。
在他们注册和证书准备好之间,我希望通过 HTTP 为他们的子域提供服务。只要证书存在,操作就应该始终将 HTTP 重定向到 HTTPS。如果我们可以检查证书的有效性,那就更好了。有什么建议吗?
答案1
为什么不将调整 nginx 作为处理批量请求的同一脚本的一部分呢?
例如,您可以在配置管理工具(例如 ansible)中创建一些代码,如果未看到给定的证书,则创建仅 HTTP 的虚拟主机,当证书实际可用时,则创建 HTTPS 虚拟主机。
然后,您可以让现有脚本在运行结束时调用配置管理工具,或者甚至只是定期运行配置管理工具。
但是,根据您向用户提供的服务类型,可能不希望允许 HTTP 访问(特别是如果他们可能做的第一件事就是尝试登录该服务)。