为什么使用 Certbot 安装 SSL 证书后我无法访问我的网站?(运行 Ubuntu 和 Nginx)

为什么使用 Certbot 安装 SSL 证书后我无法访问我的网站?(运行 Ubuntu 和 Nginx)

我无法与 nginx 服务器上的端口 443 建立连接。

我需要端口 443 来启用 https 连接,我使用 certbot 安装 SSL 证书,并使用默认安装和此处的默认说明指导

尽管我已经设置了“nginx full”命令来打开 http 和 https 端口,但我还是通过运行以下命令仔细检查了端口 443 是否确实打开sudo lsof -i -P -n | grep LISTEN,并在响应中发现端口 443 已被 nginx 使用

我尝试使用 cURL 等工具来测试我的端口,端口 80 工作正常,但端口 443 没有响应

我缺乏服务器管理经验,我尝试检查其他资源,但我不知道还能做什么。

我的站点可用配置:

server {

        root /var/www/muhammed-aldulaimi.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name muhammed-aldulaimi.com www.muhammed-aldulaimi.com;

        location / {
                try_files $uri $uri/ =404;
        }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/muhammed-aldulaimi.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/muhammed-aldulaimi.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}
server {
    if ($host = www.muhammed-aldulaimi.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = muhammed-aldulaimi.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80;
        listen [::]:80;

        server_name muhammed-aldulaimi.com www.muhammed-aldulaimi.com;
    return 404; # managed by Certbot

}

ufw 状态:

22/tcp                     ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

答案1

在确认 ubuntu 的防火墙设置没有问题后,我假设问题出在 Web 主机本身。我使用的是 AWS Lightsail,结果发现 Lightsail 只接受来自端口 22 和 80 的连接。在“网络”选项卡中添加一条接受其他端口的规则;解决了我的问题。

相关内容