certbot 无法自动找到与 subdom.mydom.com 匹配的服务器块。设置“server_name”指令

certbot 无法自动找到与 subdom.mydom.com 匹配的服务器块。设置“server_name”指令

Certbot 无法为子域 nginx 配置安装证书。
它说没有设置匹配的 server_name 指令,但实际上已经设置了。

1)我的 Nginx 配置:

server {

    listen 80 ;
    listen [::]:80 ;
    server_name subdom.mydom.com, www.subdom.mydom.com;

    location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            # proxy_set_header X-Forwarded-Proto "https";
    }

    # Redirect all HTTP traffic to HTTPS
    return 301 https://$host$request_uri;

    access_log /var/log/nginx/subdom.mydom.com_log;
    error_log /var/log/nginx/subdom.mydom.com_log;
}

它是 apache2 实例的反向代理。

2) sudo ngnix -t说:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

3)该配置通过符号链接启用/etc/nginx/sites-enabled/
4)反向代理重定向到 apache2 虚拟主机并且虚拟主机配置正在工作,因为该站点可以通过 HTTP 完全访问,并且预期nginx/1.18.0 (Ubuntu)值设置为响应头服务器字段。

5)和:

certbot --nginx -d subdom.mydom.com -d www.subdom.mydom.com

certbot 创建了证书但无法生成相应的 443 服务器块。

无法自动找到与 subdom.mydom.com 匹配的服务器块。设置“server_name”指令以使用 Nginx 安装程序。
但是server_name指令已经设置。

我在另一个项目上使用完全相同的设置(子域、nginx 反向代理、apache2 虚拟主机等),运行起来绝对完美。事实上,http 服务器块实际上是另一个工作项目的副本,当然,还调整了 server_names 和日志路径。然而,我几年前就设置了工作项目,我不记得是否涉及其他步骤。

我错过了什么?我该如何让它工作?

相关内容