You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新服务器上Let's Encrypt证书续期出现403/404错误

新服务器上Let's Encrypt证书续期出现403/404错误

看起来你迁移服务器后碰到了Let's Encrypt验证的经典坑,我之前换服务器时也遇到过几乎一模一样的问题,给你几个实用的排查方向:

  • 先检查acme-challenge目录的权限和归属
    新服务器的Ubuntu 24.04虽然也是用Apache,但有时候目录权限或者用户组会因为系统配置变化出问题。先确认网站根目录下有没有.well-known/acme-challenge文件夹,如果没有就手动创建:

    mkdir -p /var/www/你的网站根目录/.well-known/acme-challenge
    

    然后给它设置正确的权限和归属(确保Apache能读写):

    chmod 755 /var/www/你的网站根目录/.well-known/acme-challenge
    chown www-data:www-data /var/www/你的网站根目录/.well-known/acme-challenge
    
  • 检查Apache配置是否允许访问该目录
    新服务器的Apache可能有更严格的默认配置,导致Let's Encrypt无法访问验证文件。打开你的网站虚拟主机配置文件,添加一段允许访问.well-known目录的规则:

    <Directory "/var/www/你的网站根目录/.well-known/">
        AllowOverride None
        Require all granted
    </Directory>
    

    配置完记得重启Apache生效:

    systemctl restart apache2
    
  • 排查重写规则或安全模块的拦截
    如果你的网站用了mod_rewrite做URL重写,有可能把acme-challenge的请求给重定向了。可以在网站根目录的.htaccess文件里添加一条规则,排除这个路径的重写:

    RewriteRule ^\.well-known/acme-challenge/ - [L]
    

    另外,新服务器如果启用了mod_security这类安全模块,也可能误拦截验证请求,可以临时关闭mod_security测试一下,或者检查它的日志有没有相关拦截记录。

  • 确认DNS解析是否完全生效
    虽然网站能正常访问,但Let's Encrypt的验证服务器可能还缓存着旧的DNS记录,导致它去旧服务器找验证文件。可以用dig www.example.com命令检查域名指向的IP是不是新服务器的IP,如果还有问题,可以等DNS缓存过期,或者手动刷新本地DNS测试。

备注:内容来源于stack exchange,提问作者user513667

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:37:58