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

升级Dart项目至1.24.3后pub get遇CERTIFICATE_VERIFY_FAILED错误求助

解决Dart 1.24.3升级后pub get SSL证书验证失败问题

我之前帮好几个开发者排查过类似的Dart版本升级后SSL证书问题,你的情况(从1.22.1升到1.24.3后pub get报CERTIFICATE_VERIFY_FAILED相关错误)其实是因为Dart 1.24.x开始对SSL证书验证的逻辑做了严格调整——之前1.22.1的宽松验证逻辑被移除了,所以之前能绕过去的自签名证书或者证书链不完整的问题,现在会直接触发报错。

下面给你几个针对性的解决方案,按优先级尝试:

一、先定位证书问题根源

先搞清楚是官方pub.dev的证书问题,还是你们公司内部镜像/代理的证书问题:

  • 直接用浏览器访问pub.dev,看地址栏的锁图标是否提示证书异常;
  • 如果你们用的是公司内部的pub镜像,那大概率是这个镜像用了自签名证书,或者证书链不完整。

二、针对性解决方案

方案1:让Dart信任自签名证书(适用于内部镜像场景)

如果是公司内部镜像的自签名证书导致的问题,你需要把证书添加到Dart的信任列表:

  1. 导出内部pub镜像的证书:用浏览器打开镜像地址,点击地址栏的锁图标,选择「查看证书」,然后导出为.pem格式的文件;
  2. 设置环境变量指定信任该证书:
    • Windows终端执行:set DART_VM_OPTIONS=--root-certs-file="C:\你的证书路径\cert.pem"
    • macOS/Linux终端执行:export DART_VM_OPTIONS="--root-certs-file=/你的证书路径/cert.pem"
  3. 重新打开终端,执行pub get测试。

方案2:临时跳过SSL验证(仅测试应急用,不推荐生产)

如果你只是临时需要完成依赖安装,可以强制跳过SSL验证(注意这有安全风险,不要在生产环境长期使用):
直接执行命令:

pub get --no-verify-ssl

或者先设置环境变量再执行pub get:

  • Windows:set PUB_NO_VERIFY_SSL=true
  • macOS/Linux:export PUB_NO_VERIFY_SSL=true

方案3:更新系统根证书库

有时候是系统的根证书过期或缺失导致Dart验证失败,Dart会调用系统的根证书来做验证:

  • Windows:打开「控制面板 → 网络和 Internet → Internet选项 → 内容 → 证书」,检查根证书是否有过期项,必要时手动更新根证书;
  • macOS:打开「钥匙串访问」,在「系统根证书」里检查是否有异常,或者直接更新macOS到最新版本;
  • Linux:执行命令更新ca-certificates包,比如Ubuntu:
sudo apt-get update && sudo apt-get install --reinstall ca-certificates

方案4:临时回退到Dart 1.22.1

如果以上方案都暂时无法解决,你可以先回退到之前的稳定版本应急:

  • Windows用choco:choco install dart-sdk --version=1.22.1
  • 用asdf等版本管理工具:asdf install dart 1.22.1 && asdf global dart 1.22.1

三、进一步排查的小技巧

你提到已经执行了pub --trace --verbosity all,可以重点看输出里的这些信息:

  • 具体的GET请求域名(比如是pub.dev还是你们内部的镜像地址);
  • 证书链的详细输出,看哪一环的证书验证失败了。
    把这些信息整理出来,能更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:37:13