msys2中使用curl和git遇到的SSL证书问题

693 阅读1分钟

在msys2中使用curl时遇到的SSL证书问题

问题描述

在 msys2 使用 curl 命令下载 vim-plug 插件,执行如下命令:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

结果下载失败,提示错误核心内容如下:

curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html

原因

经过测试,wget 直接拉取 github 也会出现类似的错误,因此应该在于无法找到相关证书。最终发现,我是因为使用了 steam++ 进行加速,因此可能涉及到了不信任的证书,根据 msys2 的文档 www.msys2.org/docs/faq/ 可知,msys2 中的 openssl 没有集成 windows 的 CA store,说明 windows 下是支持该证书的,但 msys2 中不正常。

解决方案

关掉 steam++ 就好了,但是关掉之后访问 github 速度非常慢,所以这种方式不可取。

经过测试,msys2 下的 curl 也不支持手动指定证书的参数。不妨使用最省事的方法,选择直接忽略证书验证,即加一个 -k 参数。如下:

curl -k [省略其他内容]

访问成功:

image.png

延伸

在 msys2 中 git clone 的时候出现了这个问题,也可以直接让 git 忽视 ssl 检查。

git config http.sslVerify false