Nginx Proxy Manager SSL证书服务器可达性测试失败排查
以下是针对Nginx Proxy Manager(v2.9.18)申请SSL证书时服务器可达性测试失败的排查点:
原Web服务被NPM抢占80端口导致ACME挑战无响应
部署NPM前你能正常访问域名,说明本机原本有监听80端口的Web服务。NPM通过Docker映射主机80端口后,原服务被抢占,但此时NPM尚未配置对应域名的反向代理规则,Let's Encrypt的ACME验证请求(访问/.well-known/acme-challenge/路径)无法被正确处理。
可以执行以下命令检查主机80端口的监听进程,确认是否为NPM容器的进程:netstat -tulpn | grep :80主机防火墙拦截80端口的ACME请求
即使路由器已转发80端口,主机本地防火墙(如ufw、firewalld)可能拦截了入站的HTTP请求。检查防火墙规则,确保允许80端口的所有入站流量,或者至少允许ACME验证相关的请求。DNS解析缓存未更新
虽然你确认DNS解析正确,但Let's Encrypt的验证服务器可能缓存了旧的DNS记录。执行以下命令检查公共DNS的解析结果:dig mydomainname.com @8.8.8.8 dig mydomainname.com @1.1.1.1确认结果是否指向你的公网IP。
NPM容器内部服务异常
进入NPM容器检查内部80端口是否正常运行:docker exec -it <你的NPM容器ID> bash curl localhost:80如果无法返回NPM默认页面,说明容器内部服务启动异常,查看容器日志排查:
docker logs <你的NPM容器ID>路由器端口转发配置问题
部分路由器的端口转发规则需要重启才能生效,或者存在规则冲突(如其他设备占用了相同端口的转发)。尝试重启路由器,或检查转发规则是否正确绑定到本机的内网IP。尝试切换验证方式
在NPM的SSL证书配置页面,选择手动DNS验证方式,跳过HTTP验证环节。如果这种方式能成功获取证书,说明问题出在HTTP验证的路径或端口环节。
内容的提问来源于stack exchange,提问作者Mansur Ali Koroglu

