nginx – Certbot在nodejs Web应用程序上找到我的ACME质询时遇到问题

我有一个NodeJS Web服务,使用Nginx通过反向代理公开.我正在尝试从certbot续订SSL证书,并且为了更新,它会查看domain.com/.well-kNown以了解Acme挑战.但是,我配置节点服务的方式是根路径不提供文件,域的根由我的Web服务捕获和处理.我的实际公共webroot位于domain.com/public,因此Acme的挑战实际上是在domain.com/public/.well-kNown

所以有两种方法可以解决这个问题,我可以弄明白如何告诉certbot查看domain.com/public/.well-kNown而不是domain.com/.well-kNown,或者弄清楚如何以某种方式“代理” domain.com/public/.well-以domain.com/.well-kNown为已知.

这是我的配置并尝试重定向它失败:

server {
    listen 80;
    listen 443 ssl;
    client_max_body_size 50M;
    ssl_certificate <path to cert>;
    ssl_certificate_key <path to key>;
    server_name domain.com;
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
    location /.well-kNown {
        return 302 "http://{$host}/public{$request_uri}";
    }
}

解决方法:

如果您无法使用基于路径(HTTP)的域验证,则可以使用基于DNS的域验证.

certbot certonly --manual --preferred-challenges dns -d mydomain.com

这将提示您将TXT记录添加到域的DNS服务器.添加记录,然后等待几分钟,然后按ENTER继续.

将新证书复制到所需位置.

Certbot User Guide

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...