宝塔面板申请ssl证书验证失败,域名解析错误或验证URL无法被访

发布时间 2023-12-09 22:20:40作者: 時光心向阳

一、问题描述

使用宝塔面板建立站点,申请let‘s Encrypt 免费ssl证书时提示验证失败,域名解析错误或验证URL无法被访!

image-20231209214956594

网上找了各种方案 检查防火墙配置,安全组配置,域名解析,nginx代理等等乱七八糟的配置

检查来检查去发现都没问题,后来我注意到,这个错误提示是去访问本站点内的一个文件返回 404

但是我经过检查发现目录及文件都正常

image-20231209215458605

文件里也有内容

image-20231209215746687

然后我突然意识到,我建的站点并未用默认的80端口,而这个校验的请求访问的是默认的80端口

然后我就分别用默认的80端口和我设置的端口访问这个文件进行验证,果然证实了我的这个猜测,通过默认80端口返回404错误,通过我绑定的端口进行访问自动调用了浏览器的下载动作,也就是能找到目标资源文件

二、解决方法

既然已经明白了问题的原因,那么这个问题自然就好解决了,申请证书时既然默认请求80端口进行验证文件,那么我们仅需让80端口重定向到我们指定的端口就行了

修改 /www/server/nginx/conf/nginx.conf 文件,添加一条重定向配置即可

server_name 替换为你的域名 ,将 root 替换为你站点的根目录路径即可

server {
     listen 80;
     server_name your domain;

     location ^~ /.well-known/acme-challenge/ {
         default_type "text/plain";
         root /www/wwwroot/xxxx;
     }

     location / {
         return 301 https://$host$request_uri;
     }
 }

如图所示

image-20231209221120660

修改之后重载nginx服务,然后重新用默认80端口访问下资源目录验证下,成功响应

image-20231209221256719

重新申请下证书,问题成功解决,完美撒花

image-20231209221413428