尝试在 Windows 服务器上安装 MSYS2 包时出现证书错误

Certificate error when trying to install MSYS2 packages on Windows server

我在 Windows Server 2016 上安装了 MSYS2-64bits 以支持一些 Linux 库,例如 OpenSSL,我在 Ruby Rails 开发中需要它. MSYS2 已部分安装 Ruby 2.7,但由于证书错误消息而未完成。

我先下载并安装了msys2-x86_64-20210725.exe。花了很长时间,在一些关于更新信任数据库的消息后完成:

==> Generating pacman master key. This may take some time.

==> Updating trust database...

==> Appending keys from msys2.gpg...

==> Locally signing trusted keys in keyring...

  -> Locally signed 6 keys.
==> Importing owner trust values...

==> Disabling revoked keys in keyring...

  -> Disabled 1 keys.
==> Updating trust database...

这个阶段大概停留了10分钟,终于宣告安装成功

然后我尝试通过运行 pacman -Syuu更新现有软件。我按要求重新启动了 MSYS2,输入语句,并重复出现很多错误,例如以下内容:

$ pacman -Syuu
:: Synchronizing package databases...
 mingw32.db failed to download
 mingw64.db failed to download
 ucrt64.db failed to download
 clang64.db failed to download
 msys.db failed to download
error: failed retrieving file 'mingw32.db' from mirror.msys2.org : SSL certificate problem: self signed certificate in certificate chain
error: failed retrieving file 'mingw64.db' from mirror.msys2.org : SSL certificate problem: self signed certificate in certificate chain
error: failed retrieving file 'ucrt64.db' from mirror.msys2.org : SSL certificate problem: self signed certificate in certificate chain
warning: too many errors from mirror.msys2.org, skipping for the remainder of this transaction

恐怕公司代理可能会拒绝自签名证书。有没有办法获得正确签名的证书并完成所有软件包的安装?

感谢您的帮助!

问得好,但这不完全是企业代理拒绝自签名证书;它是 pacman 的 SSL 代理。

在您的浏览器中,转到 repo。msys2.org 以查找正在使用的证书:

开放详情:

您需要单独导出所有证书,但不需要最低的证书用于回购。msys2.org:

保存到本地文件:

使用 Base-64 编码导出:

可以直接保存到信源anchors文件夹。事情会不时发生变化,但截至目前,那是 C:\msys64\etc\pki\ca-trust\source\anchors\<anyfilename>.cer

通过相同的步骤导入顶级根证书。保存在同一个路径,不同的文件名。

$ update-ca-trust
## Done.
$ pacman -Syu