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

Debian8环境Certbot申请SSL证书触发gaierror(-2)报错如何解决

错误原因

ConnectionError: ('Connection aborted.', gaierror(-2, 'Name or service not known'))属于DNS解析失败类错误,核心是你的服务器无法正常解析请求的域名,可能是本地DNS配置错误、待申请证书的域名解析配置错误、老系统Certbot版本不兼容、网络出站限制这几类原因导致。

对应解决方案

1. 修复服务器本地DNS配置

  • 先测试公网域名解析是否正常,执行命令:
    ping acme-v02.api.letsencrypt.org
    如果返回「未知的域名/Name or service not known」,说明本地DNS配置失效。
  • 编辑DNS配置文件/etc/resolv.conf,新增公共DNS地址:
nameserver 8.8.8.8
nameserver 1.1.1.1

保存文件后重新执行上述ping命令,确认解析正常。

2. 校验待签发证书的域名解析

  • 确认你执行Certbot命令时-d参数后绑定的域名,已经在域名服务商后台配置了A记录,指向当前服务器的公网IP,无拼写错误。
  • 在服务器上执行命令校验域名解析结果:
    nslookup 你的实际域名
    如果返回的IP和服务器公网IP不一致,先修改域名解析记录,等待解析生效后再重新执行Certbot命令。

你执行的示例命令中用的是example.com和www.example.com,必须替换为你实际持有的、已经完成解析配置的域名,否则必然会报错。

3. 适配Debian 8旧系统兼容问题

Debian 8属于停止维护的旧版本,默认源安装的Certbot版本过低,已经不兼容Let's Encrypt当前的ACME v2接口,建议替换为兼容性更好的acme.sh工具签发证书:

  • 卸载原有Certbot:apt remove certbot -y
  • 安装acme.sh:curl https://get.acme.sh | sh
  • 用webroot模式签发证书:
    acme.sh --issue -d 你的域名 -d www.你的域名 --webroot /var/www/html
  • 签发完成后可配置自动部署到Nginx配置的证书路径,工具默认会自动配置定期续期任务。

4. 排查网络出站限制

如果上述配置都正常还是报错,检查服务器的防火墙、云服务商安全组是否放行出站443端口,有没有配置错误的代理规则,执行以下命令测试ACME接口连通性:
curl -v https://acme-v02.api.letsencrypt.org/directory
如果无法正常返回JSON数据,调整出站访问规则即可。

报错截图

报错截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:54:04