BT 宝塔面板。在网站配置时提示这样的错误。Nginx配置文件错误,请先修复后在尝试:nginx: [emerg] cannot load certificate "/www/server/panel/vhost/cert/0.default/fullchain.pem": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/www/server/panel/vhost/cert/0.default/fullchain.pem, r) error:10000080:BIO routines::no such file) nginx: configuration file /www/server/nginx/conf/nginx.conf test failed 为什么会提醒这个文件夹缺少文件呢?我应该怎么办呢?

这个错误的核心原因是:Nginx 在加载全局配置时,发现 0.default 这个默认站点引用的 SSL 证书文件 fullchain.pem 在磁盘上不存在。0.default 是宝塔面板内部的一个默认站点/兜底站点,当有未绑定域名的请求(比如直接用 IP 访问)或某些历史遗留配置时,Nginx 会尝试加载它,一旦它的证书文件丢失或路径失效,就会导致整个 nginx -t 测试失败,从而阻塞你当前站点的 SSL 配置保存。
为什么会缺少这个文件?
历史遗留或面板升级:旧版本宝塔升级后,证书存储路径发生过变更,但
0.default的配置没有同步更新,仍然指向了已经不存在的旧路径。文件被误删或保存失败:可能有人手动清理过
/www/server/panel/vhost/cert/目录,或者磁盘空间不足、权限异常,导致0.default的证书文件没有正确写入磁盘。默认站点配置被意外修改:你在配置自己网站时,Nginx 会触发全局配置测试,从而暴露了
0.default这个“隐藏”的损坏配置。
解决步骤
建议按以下顺序操作,先解除 Nginx 的全局阻塞,再修复你自己的网站证书。
第一步:生成临时证书,让 Nginx 测试先通过
因为宝塔在保存任何站点 SSL 配置前,都必须保证全局 nginx -t 通过。如果 0.default 的缺失持续存在,你每次保存自己的证书都会失败。
通过 SSH 登录服务器,执行以下命令,为 0.default 生成一个自签名的临时证书:
mkdir -p /www/server/panel/vhost/cert/0.default openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout /www/server/panel/vhost/cert/0.default/privkey.pem \ -out /www/server/panel/vhost/cert/0.default/fullchain.pem \ -subj "/CN=localhost"
执行后,运行 nginx -t 验证,应该不再提示 0.default/fullchain.pem 缺失。
第二步:检查并修正你自己网站的证书路径
0.default 只是“背锅”的,你真正要配置的网站,其证书路径也可能存在问题。
在宝塔面板中,进入 网站 → 你的域名 → 配置文件。
搜索
ssl_certificate和ssl_certificate_key这两行,确认它们指向的是你自己的域名目录,而不是0.default:正确应为:
/www/server/panel/vhost/cert/你的域名/fullchain.pem私钥应为:
/www/server/panel/vhost/cert/你的域名/privkey.pem
如果发现指向了
0.default,请修正为你自己的域名路径,或者删除该异常指令。
第三步:在宝塔中重新申请或上传证书
全局阻塞解除后,回到面板操作:
如果使用 Let's Encrypt:进入网站 SSL 页面,点击 “申请” 或 “续签”,让面板重新签发并写入证书文件。
如果使用其他证书:在 “其他证书” 区域,粘贴完整的证书内容(
fullchain.pem)和私钥(privkey.pem),点击 “保存并启用”。
操作完成后,在 SSH 中执行 nginx -t && nginx -s reload,应该能看到 syntax is ok 和 test is successful,HTTPS 即可恢复正常。
补充排查
如果执行第一步时提示权限错误,可以顺便检查一下证书目录的属主和磁盘空间:
chown -R www:www /www/server/panel/vhost/cert/ df -h
权限异常或磁盘写满,也会导致证书文件无法正常生成。
