在 opam 中跳过 wget 证书检查
Skip wget certificate checking in opam
我刚刚更新到 opam 2,在我无法更新的非常旧的 MacBook (运行 OS X 10.6.8) 上,它缺少一些与证书验证相关的重要包 (由于缺少工具,我什至无法更新 Homebrew,因为它需要认证......有点循环问题)。
我想在不检查证书的情况下更新 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
命令,而无需自己重新编译它?
改为修复您的 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 证书。
更多关于 .wgetrc
的信息在 http://gnu.org/software/wget/manual/html_node/Wgetrc-Commands.html
我刚刚更新到 opam 2,在我无法更新的非常旧的 MacBook (运行 OS X 10.6.8) 上,它缺少一些与证书验证相关的重要包 (由于缺少工具,我什至无法更新 Homebrew,因为它需要认证......有点循环问题)。
我想在不检查证书的情况下更新 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
命令,而无需自己重新编译它?
改为修复您的 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 证书。
更多关于 .wgetrc
的信息在 http://gnu.org/software/wget/manual/html_node/Wgetrc-Commands.html