Linuxbrew curl 证书问题

Linuxbrew curl certificate issue

我在我的服务器上安装了 Linuxbrew。但是,当我尝试 运行 任何命令时,我遇到了 curl 问题(brew 使用它来获取其更新)。 通常当像这样的其他工具出现此类问题时,它们会提供一个标志来使证书检查无效,并且 curl 本身使用 -k 标志为您提供这种可能性。

但是在 brew 的文档中我没有找到这样的标志。因此,我的第二个猜测是在放置在我家中的 .curlrc 文件中设置标志 insecure 以将 curl 不检查 SSL 证书设置为默认值。

下面是我 运行 bew 时的输出示例:

-bash-4.1$ brew update
==> Installing dependencies for curl: patchelf, zlib, binutils, linux-headers, glibc, m4, gmp, mpfr, libmpc, isl@0.18, gcc, pkg-config and openssl
==> Installing curl dependency: patchelf
==> Downloading https://linuxbrew.bintray.com/bottles/patchelf-0.10.x86_64_linux.bottle.tar.gz

curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
Error: Failed to download resource "patchelf"
Download failed: https://linuxbrew.bintray.com/bottles/patchelf-0.10.x86_64_linux.bottle.tar.gz

为了让 Homebrew 接受 .curlrc 文件中指定的选项,需要设置一个标志。

根据文档:

HOMEBREW_CURLRC: If set, Homebrew will not pass -q when invoking curl(1), which disables the use of curlrc.

因此 运行 这个脚本是为了让自制程序忽略 SSL 证书验证:

echo insecure >> ~/.curlrc
HOMEBREW_CURLRC=1
export HOMEBREW_CURLRC
brew install …