LetsEncrypt 无法连接以验证域(超时)

LetsEncrypt 无法连接以验证域(超时)

我正在尝试使用 LetsEncrypt 为我的 Nextcloud 服务器设置 SSL 证书,但是当我运行时:

$ sudo certbot certonly --webroot -w /var/www/nextcloud --agree-tos \
     --no-eff-email --email [email protected] -d cloud.domain.com --rsa-key-size 4096

(基于本教程:https://howto.wared.fr/ubuntu-installation-nextcloud-nginx/

我收到此错误消息:

Failed authorization procedure. cloud.domain.com (http-01): urn:acme:error:connection :: 
The server could not connect to the client to verify the domain ::
Fetching http://cloud.domain.com/...: Timeout during connect (likely firewall problem)

(我已经打开防火墙端口80和443)

由于我的路由器仅使用 IPv6,我无法设置端口转发以指向我的服务器(ubuntu 18.04),这是最潜在的问题吗?如果是,我是否必须联系我的 ISP 才能重新启用 IPv4?

如果不是,那可能是什么?

答案1

您绝对需要确保公众IPv4已在您的路由器上启用。如果没有它,只有少数人能够连接到您,考虑到这一点,我相信您的服务器上存在一些防火墙问题。请发帖:

sudo iptables --list --verbose --line-numbers

由于我的路由器仅使用 IPv6,因此我无法将端口转发设置为指向我的服务器(ubuntu 18.04),这是最潜在的问题吗?如果是,我是否必须联系我的 ISP 才能重新启用 IPv4?

由于我没有完全理解这句话,我会说:

  • 您需要在路由器上分配 IPv4 公共 IP 地址

  • 如果您没有,那么您需要联系您的提供商


之后,请确保您已将端口 80 和 443 从路由器转发到服务器。

答案2

也许这对任何人都有帮助,如果您使用亚马逊 EC2 实例,首先尝试检查DNS传播是否设置成功,可以使用: https://letsdebug.ne​​t/ 如果一切正确,请尝试验证您的组安全性(EC2 > 安全组 > nameOfGroup)是否具有以下入站规则:

Type          |   Protocol  |  Port range | Source    | Description - optional
HTTP          |   TCP       |   80        | 0.0.0.0/0 | -
SSH           |   TCP       |   22        | 0.0.0.0/0 | -   
HTTPS         |   TCP       |   443       | 0.0.0.0/0 | -

相关内容