跳过opam中的wget证书检查

时间:2019-07-11 08:15:07

标签: wget osx-snow-leopard opam

我刚刚在旧的MacBook上更新为opam 2,我无法更新(运行OS X 10.6.8),并且缺少一些与证书验证有关的重要软件包(由于缺少工具,我什至无法更新自酿,因为它需要认证...有点循环问题。

我想在不检查证书的情况下更新opam,否则会出现以下错误:

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><>  ? 
[ERROR] Could not update repository "default": 
OpamDownload.Download_fail(_, "Download command failed: 
  \"/usr/local/bin/wget --content-disposition -t 3 -O 
    /private/tmp/opam-17621-5a61c5/index.tar.gz.part
    https://opam.ocaml.org/1.2.2/index.tar.gz -U opam/2.0.0\"
  exited with code 5 
  \"ERROR: cannot verify opam.ocaml.org's certificate, issued by
  'CN=Let\\'s Encrypt Authority X3,O=Let\\'s Encrypt,C=US':\"")

我刚能够从1.2.2升级到opam 2.0.0,但是现在我不能做opam update。没有它,我无能为力。

是否可以将选项--no-check-certificate传递给opam使用的wget命令,而不必自己重新编译?

1 个答案:

答案 0 :(得分:1)

改为修复您的wget。似乎丢失了最近的CA捆绑软件。

首先,检查它在哪里查找捆绑软件-

$ strace wget -O /dev/null https://github.com 2>&1 | grep cert

read(3, "eting an end user certificate as"..., 4096) = 2806
read(5, "eting an end user certificate as"..., 4096) = 2806
openat(AT_FDCWD, "/usr/lib/ssl/cert.pem", O_RDONLY) = -1 ENOENT (No such file or directory)

然后复制Mozilla's .pem bundle以匹配预期的.pem路径。

如果您使用的系统缺少strace,或者在输出中根本没有提到CA软件包的位置,请尝试创建.wgetrc,然后添加

ca_certificate = /path/to/your/ca-bundle.pem

另存为$HOME/.wgetrc

wget然后应该能够验证Let's Encrypt证书。

有关http://gnu.org/software/wget/manual/html_node/Wgetrc-Commands.html.wgetrc的更多信息