我正在尝试使用 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.net/ 如果一切正确,请尝试验证您的组安全性(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 | -