运行flutter pub upgrade命令出现握手错误如何解决?
Flutter
pub upgrade 证书校验失败问题修复方案 问题日志
Running pub upgrade...
Handshake error in client (OS Error:
CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate(../../third_party/boringssl/src/ssl/handshake.c:359))
修复方法
- 切换国内Flutter官方镜像源
大部分场景下该错误由访问境外Pub源时网络链路被劫持、证书校验不通过导致,配置国内镜像即可解决:- Windows系统:在系统环境变量中新增以下两个变量
配置完成后重启终端重新执行命令即可。PUB_HOSTED_URL=https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn - macOS/Linux系统:在当前用户的shell配置文件(
~/.bashrc、~/.zshrc等)末尾添加以下内容
保存后执行export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cnsource ~/.zshrc(对应你使用的shell配置文件)生效,再重新执行升级命令。
- Windows系统:在系统环境变量中新增以下两个变量
- 临时禁用证书校验
仅推荐测试场景临时使用,不建议长期开启,存在安全风险
执行命令时添加跳过证书校验参数即可:
也可以临时设置环境变量禁用校验:flutter pub upgrade --no-check-certificate# Windows cmd set PUB_CERTIFICATE_CHECK=0 # Windows PowerShell $env:PUB_CERTIFICATE_CHECK=0 # macOS/Linux export PUB_CERTIFICATE_CHECK=0 - 修复本地可信证书
如果是在公司内网环境、开启了公司代理的场景,需要将公司内网的根证书导入到系统可信证书库:- Windows:双击证书文件,选择导入到「受信任的根证书颁发机构」存储
- macOS:双击证书文件导入到钥匙串,右键选择「显示简介」-「信任」,将SSL选项设为「始终信任」
- Linux:将证书文件放到
/usr/local/share/ca-certificates/目录,执行sudo update-ca-certificates命令更新系统证书
- 检查代理配置
确认本地是否开启了全局代理、VPN工具,部分代理工具会劫持SSL流量导致证书校验失败,可以尝试关闭代理,或者将Flutter、Pub相关域名加入代理白名单后重试。
内容的提问来源于stack exchange,提问作者Hari
相关产品推荐
相关产品推荐

