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

NodeJS API偶发误报有效Let's Encrypt证书已过期如何解决

排查与修复方案

1. 多实例证书不同步排查

偶发异常首先排查是否存在多个Docker容器实例,部分实例未同步更新证书:

  • 逐个进入所有运行的API容器,执行命令openssl x509 -in 你的证书存储路径.crt -text -noout,核对每个容器内的证书有效期、匹配域名是否和最新证书一致
  • 若存在未更新证书的实例,重新部署同步最新证书即可

2. 证书链配置修正

NodeJS v10对证书中间链的自动补全支持不稳定,若你使用的是单独的域名证书cert.pem而非完整链证书,会出现偶发验证失败:

  • 替换证书配置为Let's Encrypt自动生成的fullchain.pem,该文件已拼接域名证书和官方中间证书,无需NodeJS自行补全链信息

3. NodeJS进程残留排查

若更新证书后仅做了热重载未完全重启进程,可能出现部分工作进程仍缓存旧证书的情况:

  • 执行ps aux | grep node查看所有Node进程的启动时间,确认所有进程启动时间均晚于证书更新时间
  • 完全停止所有Node进程后再重新启动,确认证书重载生效

4. 容器时间同步校验

即使宿主机时间正常,未挂载时区配置的Docker容器可能出现内部时间偏移:

  • 逐个进入容器执行date命令,核对容器内时间和标准时间是否一致
  • 启动容器时添加挂载参数-v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro强制同步宿主机时区和时间

5. NodeJS旧版本根证书兼容修复

NodeJS v10.19.0内置的根证书库包含已过期的DST Root CA X3,会导致Let's Encrypt证书偶发验证失败:

  • 启动Node进程前添加环境变量NODE_OPTIONS=--use-openssl-ca,强制Node使用系统内置的根证书列表,替代自身内置的旧根证书库

内容的提问来源于stack exchange,提问作者Moosigno

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:57:01