wget 无法验证 GitHub.com 的证书

wget 无法验证 GitHub.com 的证书

我使用的是 macOS 10.15.7。我已通过 homebrew 安装了 wget。我的目标是安装奥尔皮耶通过奥帕姆. opam 使用 wget。我的 wget 安装无法找到所需的证书。我该如何解决这个问题?

我收到的错误是:

$ wget --content-disposition -t 3 -O /Users/jamesh/.opam/default/.opam-switch/sources/csexp.1.5.1/csexp-1.5.1.tbz.part https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz -U opam/2.0.8

--2021-04-28 10:42:18--  https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz
Resolving github.com (github.com)... 140.82.112.3
Connecting to github.com (github.com)|140.82.112.3|:443... connected.
ERROR: cannot verify github.com's certificate, issued by ‘CN=DigiCert High Assurance TLS Hybrid ECC SHA256 2020 CA1,O=DigiCert\\, Inc.,C=US’:
  Unable to locally verify the issuer's authority.
To connect to github.com insecurely, use `--no-check-certificate'.

答案1

尝试1:

 sudo apt install --reinstall ca-certificates

 sudo update-ca-certificates -f

尝试2:创建~/.wgetrc文件并添加:

ca_certificate=/etc/ssl/certs/ca-certificates.crt

答案2

对于评论来说,这有点太长了,因此添加为“答案”,尽管 Op 自己的答案就很好。

我认为根本问题与此相同:https://stackoverflow.com/questions/56984577/skip-wget-certificate-checking-in-opam

您的 macOS 版本并不算太旧(最早是 2020 年 9 月 24 日,之后还有几个补丁),所以我没想到您的 CA 软件包会过时。但是,不知何故 wget 并未指向它。

使用 Op 建议的 Ruby 创建的默认证书来修复它很聪明,但不应该是必要的。Homebrew 的 wget 依赖于 openssl,它附带一个类似的 cert.pem 文件,请参阅OSX 上的 ca 证书包在哪里?. 如果 Op 的自制 openssl 因某种原因缺少此软件包,那就太好了。

另请参阅https://stackoverflow.com/questions/24675167/ca-certificates-mac-os-x了解获取证书包的其他方法。

答案3

ca-certificates在调用 wget 之前只需 apt-install 该包即可。

答案4

我能够通过找到 wget 可以使用的 .pem 文件来解决问题。

我跑了:

ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"

返回:

"/private/etc/ssl/cert.pem"

然后我创建了一个.wgetrc:

$ cat .wgetrc
ca_certificate=/private/etc/ssl/cert.pem⏎

这使得 wget 可以工作。

此外,homebrew 安装的 openssl 包中应该有一个 cert.pem 文件。我的位于。将 ca_certificate 分配给此路径也有效。/usr/local/etc/[email protected]/cert.pem

相关内容