Docker部署Node+GraphQL项目配置HTTPS遇dl.eff.org证书不可信错误
报错原因
- 核心原因1:你使用的
debian:jessie是2020年就已经停止官方支持的过时代码版本,内置的CA根证书列表长期未更新,无法识别当前合法的HTTPS根证书,因此误判dl.eff.org的证书过期/不被信任。 - 核心原因2:你用到的
certbot-auto工具已经被官方废弃并停止提供下载,即使解决了证书校验问题也无法正常获取该文件。
可行解决方法
推荐使用官方维护的certbot安装方案,修改Dockerfile和相关脚本如下:
1. 替换Dockerfile内容
直接使用仍在支持周期内的稳定版Debian镜像,从官方软件源安装certbot,无需手动下载废弃的certbot-auto:
FROM debian:bookworm-slim # 安装依赖,包含最新根证书包和官方certbot RUN apt-get update \ && apt-get install -y --no-install-recommends cron bash ca-certificates certbot \ && rm -rf /var/lib/apt/lists/* RUN mkdir -p /webroots/bgl8700.com.br/.well-known /scripts WORKDIR /scripts RUN certbot -n certificates VOLUME /webroots VOLUME /etc/letsencrypt # 配置自动续期定时任务 RUN echo "22 03 * * 2,4,6,7 root certbot renew" > /etc/cron.d/certbot CMD ["cron", "-f"]
2. 修改register脚本
将脚本内的certbot-auto调用替换为系统安装的certbot:
#!/bin/sh certbot certonly --webroot -w /webroots/$1 -d $1
临时应急方案(不推荐,仅作临时验证用)
如果暂时不希望调整整体镜像配置,可以给wget添加参数跳过证书校验,但该方式存在安全风险,且仍会遇到certbot-auto无法下载的问题,仅作问题定位参考:
# 仅作临时测试,不建议生产使用 RUN wget --no-check-certificate https://dl.eff.org/certbot-auto
内容的提问来源于stack exchange,提问作者mvaldetaro
相关产品推荐
相关产品推荐

