我在端口 80 上运行了一个反向代理,作为“网关”来更新我网络内虚拟机上的 Let's Encrypt 证书。由于这个原因,这个反向代理每周只在端口 80 上暴露 5 分钟。我有许多域通过此服务器被转发到它们的内部 IP 地址。这一切都很好,但是有一台服务器在端口 443 上暴露在互联网上。当我使用 https 向正确的域名发出请求时,一切都很好。当我使用其他域之一时,我当然会收到无效证书错误。这就是为什么我正在考虑通过反向代理路由端口 443 流量,这样我就能够阻止流量不针对暴露并在 443 上运行的一个域。然而,Nginx 需要一个我不能给它的有效证书因为它'
我在端口 443 上运行的服务器是 Kerio Mailserver。也许我可以在那里做一些事情来强制只使用一个域名?
有没有办法处理这个?以防万一您想知道:其他服务器不需要公开。
我看不出为什么不能通过 NGINX 代理 HTTP 和 HTTPS 流量。这样你就可以:
编辑:如果您还想加密 NGINX 和虚拟机之间的流量,或者正如您在评论中所说的那样,您不想使用 NGINX 进行来自本地网络的连接,您可以将本地证书颁发机构用于内部服务器.
从您的角度来看,它更安全,因为本地 CA 比外部权威更值得信赖。您只需将其添加到本地网络中的所有计算机,即可颁发长期证书,而无需每 60 天更新一次。
我将其修复如下:我首先在我的 Kerio VM 上安装了 nginx,并配置了一个反向代理路由端口 443 到 444(Kerio 现在所在的位置)。接下来,我在 VM 上创建了一个通配符 SSL 证书,该证书用于 2 个主机,1 个用于 webmail 和整个 Kerio,1 个用于重定向指向我的公共 IP 的所有其他域名而不会出现证书错误。
现在我要弄清楚的是如何真正解决 504 网关超时问题,而不是仅仅添加一个巨大的超时限制。并希望 certbot 确实可以毫无问题地使用 DNS 挑战进行更新。
现在该睡觉了。