基本上,我正在测试不同版本的 OpenSSL,并且在此过程中的某个地方破坏了 wget 的证书路径。
wget https://www.google.com
目前结果为:
ERROR: cannot verify www.google.com's certificate, issued by 'CN=Google Internet Authority G2,O=Google Inc,C=US':
Unable to locally verify the issuer's authority.
To connect to www.google.com insecurely, use `--no-check-certificate'.
这让我认为 wget 不知道在哪里寻找证书,因为ca-certificates
已经安装了,如果我设置了export SSL_CERT_DIR=/etc/ssl/certs
一切,直到重新启动。
我该如何永久修复此问题?我想恢复到原始状态,其中 wget 自动知道在哪里检查证书。
我可能可以在启动时设置此导出,但它的正确位置在哪里?它最初在哪里?
编辑:
在另一台服务器上,我检查了一下,环境中没有SSL_CERT_DIR
变量,但 wget 工作正常。wget 如何知道在哪里查找证书?
答案1
通常,发行版会在全局wgetrc
文件中指定这一点。例如,Arch Linux 在以下文件中指定了此项/etc/wgetrc
:
ca_certificate=/etc/ssl/certs/ca-certificates.crt
因此,只需找到您的证书所在的位置,然后将其传递给 wgetrc。
答案2
./configure
它由选项在时间上设置--openssldir
。wget 将在该目录中查找证书。
您可以在这里找到更多相关信息:https://unix.stackexchange.com/a/200058/39382
答案3
在 macOS 上,你可以使用以下命令wget
指向该文件:cert.pem
wget --ca-certificate=/etc/ssl/cert.pem
或者在你的.wgetrc
:
ca-certificate = /etc/ssl/cert.pem
这适用于 macOS 10.14;文件位于同一位置的其他版本表面上应该也可以工作。