当使用 Let's Encrypt Certbot 时,Let's Encrypt 服务器会向 Web 服务器上的临时文件发出 HTTP 请求,以验证请求的域是否解析为运行 certbot 的服务器。
但是,我的提供商在防火墙中阻止了端口 80,并且不会打开它,即使是暂时也不会。我也无法使用 DNS 验证,因为我无法编辑 DNS 记录。
(如何)我可以通过 https(使用自签名证书,Apache 监听端口 443)而不是 http 使用 Let's Encrypt 验证过程吗?
答案1
Letsencrypt 建议保持 80 端口开放:
允许端口 80 不会给您的服务器带来更大的攻击面,因为端口 80 上的请求通常由在端口 443 上运行的相同软件提供服务。
但他们已经考虑到了这种情况:
不幸的是,您可能无法控制是否为您的网站屏蔽端口 80。一些(主要是住宅)ISP 会出于各种原因屏蔽端口 80。如果您的 ISP 这样做,但您仍想从 Let's Encrypt 获取证书,您有两个选择:您可以使用 DNS-01 质询,也可以使用支持 TLS-ALPN-01 质询的客户端之一(在端口 443 上)。
所以推荐的方法是使用tls-alpn 挑战