一、问题描述
使用宝塔面板建立站点,申请let‘s Encrypt
免费ssl证书时提示验证失败,域名解析错误或验证URL无法被访!
网上找了各种方案 检查防火墙配置,安全组配置,域名解析,nginx代理等等乱七八糟的配置
检查来检查去发现都没问题,后来我注意到,这个错误提示是去访问本站点内的一个文件返回 404
但是我经过检查发现目录及文件都正常
文件里也有内容
然后我突然意识到,我建的站点并未用默认的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;
}
}
如图所示
修改之后重载nginx服务,然后重新用默认80端口访问下资源目录验证下,成功响应
重新申请下证书,问题成功解决,完美撒花
标签:验证,URL,端口,域名解析,默认,server,nginx,80 From: https://www.cnblogs.com/an-shiguang/p/17891913.html