因此,我的一台服务器位于 NAT 后面,并且由于我的 LAN 上已经有一个可公开访问的 apache 服务器,我决定使用不同的端口从外部访问它,并将它们重新映射到这个新服务器上的 apache 的标准端口。我想获得证书的机器。我通过路由器使用经典端口转发来做到这一点。
现在,如果我想在所述服务器上使用 LetsEncrypt,它显然会失败,因为它尝试使用标准端口,该端口将定向到我的其他服务器的 Apache 安装(顺便说一句,它已经有一个 LetsEncrypt 证书)。
现在我想我需要某种方法来告诉 LetsEncrypt 使用我的自定义端口而不是标准端口从外部连接,但我还没有找到任何东西。这可能吗?如果是的话,怎么样?
答案1
不可能使用非标准端口,因为符合 ACME 服务器仍会尝试联系默认的 80 / 443 以进行 http-01 / tls-sni-01 挑战。
例如,certbot
有一个单独的选项用于监听非标准端口,但这仍然无助于通过挑战:
certonly:
Options for modifying how a cert is obtained
--tls-sni-01-port TLS_SNI_01_PORT
Port used during tls-sni-01 challenge. This only
affects the port Certbot listens on. A conforming ACME
server will still attempt to connect on port 443.
(default: 443)
--http-01-port HTTP01_PORT
Port used in the http-01 challenge.This only affects
the port Certbot listens on. A conforming ACME server
will still attempt to connect on port 80. (default:
80)
也许在你的情况下,最好的方法是使用另一种验证方法——webroot。在这种情况下,您不需要 80 和 443 可供外界使用,而只需要一个特定的目录(我认为可能在网络服务器端配置了代理)。
详细信息这里