执行yarn clasp login时访问令牌获取失败,证书验证出错求助
执行yarn clasp login时访问令牌获取失败,证书验证出错求助
你好,看了你的问题描述,我整理了几个可能解决这个证书验证错误的方法,你可以逐一尝试:
一、先确认错误场景
你运行命令后出现的错误日志如下:
yarn run v1.22.22 $ C:\Users\myname\Desktop\個人開発プロジェクト\clasp-240418\node_modules\.bin\clasp login Error retrieving access token: FetchError: request to https://oauth2.googleapis.com/token failed, reason: unable to verify the first certificate error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
这个错误确实大概率是SSL证书验证不通过导致的,结合你提到的ESET杀毒软件,它的SSL拦截功能很可能是元凶,下面是具体的解决方向:
二、解决方法
1. 临时关闭证书验证(仅测试用,不推荐长期使用)
如果只是临时需要完成登录,可以通过Node.js的环境变量跳过证书验证,在命令行执行:
set NODE_TLS_REJECT_UNAUTHORIZED=0 && yarn clasp login
(Windows系统用set,如果是macOS/Linux系统则替换成export)
2. 配置ESET排除SSL扫描的域名
ESET的协议过滤功能会替换HTTPS证书,导致Node.js无法验证。你可以把Google OAuth相关域名加入ESET的信任列表:
- 打开ESET主界面,进入「设置」-「Web和电子邮件」-「协议过滤」
- 在「排除的地址」里添加以下域名:
oauth2.googleapis.comaccounts.google.com
- 保存设置后,重新运行
yarn clasp login试试
如果添加排除后还是不行,可以临时关闭「协议过滤」功能,测试是否能正常登录,确认是ESET导致的问题后再调整配置。
3. 导入ESET根证书到Node.js信任列表
如果不想关闭ESET的扫描,可以导出ESET的根证书,让Node.js信任它:
- 打开浏览器(比如Chrome),访问任意HTTPS网站,点击地址栏的锁图标,查看证书信息,找到ESET的根证书并导出为
.crt格式的文件 - 设置Node.js的环境变量指向这个证书文件,然后运行命令:
set NODE_EXTRA_CA_CERTS="C:\你的证书路径\eset-root.crt" && yarn clasp login
4. 更新clasp到最新版本
旧版本的clasp可能存在证书相关的兼容问题,试试更新到最新版:
yarn global add @google/clasp@latest
三、额外提示
你之前尝试添加自签证书到Node.js环境变量没生效,可能是因为实际拦截证书的是ESET的证书,而不是你自己生成的,所以优先处理ESET相关的配置会更有效。
备注:内容来源于stack exchange,提问作者Eisuke Kainuma
相关产品推荐
相关产品推荐

