5

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

但是在 brew 的文档中,我没有找到这样的标志。因此,我的第二个猜测是将放置在我家中insecure.curlrc文件的标志设置为默认值,即 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
4

1 回答 1

8

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

根据文档:

HOMEBREW_CURLRC:如果设置, Homebrew 在调用 curl(1) 时不会传递 -q,这会禁用 curlrc。

因此只需运行此脚本以使自制软件忽略 SSL 证书验证:

echo insecure >> ~/.curlrc
HOMEBREW_CURLRC=1
export HOMEBREW_CURLRC
brew install …
于 2019-08-26T09:22:28.267 回答