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

use*_*081 20 ruby-on-rails msys2

我在 Windows Server 2016 上安装了 MSYS2-64bits 以支持一些 Linux 库,例如 OpenSSL,这是我在 Ruby on 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...
Run Code Online (Sandbox Code Playgroud)

这个阶段停留了大约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
Run Code Online (Sandbox Code Playgroud)

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

感谢您的帮助!

Aar*_*son 39

很好的问题,但这并不完全是公司代理拒绝自签名证书;而是公司代理拒绝自签名证书。它是 pacman 的 SSL 代理。

在浏览器中,转到 repo.msys2.org 以查找正在使用哪些证书: 显示连接详细信息

开放详情:

证书详情

您需要单独导出所有证书,但不需要 repo.msys2.org 的最低证书:

查看证书

保存到本地文件:

复制到文件...

使用 Base-64 编码导出:

Base-64 编码

可以直接保存到信任源anchors文件夹中。事情时常发生变化,但到目前为止,情况就是这样C:\msys64\etc\pki\ca-trust\source\anchors\<anyfilename>.cer

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

$ update-ca-trust
## Done.
$ pacman -Syu
Run Code Online (Sandbox Code Playgroud)

  • 我的证书是“.crt”,需要重命名为“ca-bundle.crt”,然后放入“C:\msys64\usr\ssl\certs”。相对https://github.com/msys2/MSYS2-packages/issues/2529 (2认同)

小智 5

我的屏幕看起来与上面的屏幕截图不完全一样,并且我无法选择使用.cer扩展名保存证书;我只能通过.der扩展来做到这一点。不过,它的工作方式是一样的。以下是我单击挂锁图标时屏幕的样子:

常规选项卡 详细信息选项卡