为什么 wget 不验证 SSL 证书?

tom*_*azy 24 linux ssl fedora wget

我的Fedora 8安装有问题。看起来wget不再知道如何验证 SSL 证书了。这很奇怪,因为我有另一个Fedora 8 机器,我相信它具有相同的配置并且可以正常工作!

如何在不使用--no-check-certificateswitch 的情况下使其工作?

这是一个示例输出:

wget https://www.google.com
--2011-09-23 00:11:13--  https://www.google.com/
Resolving www.google.com... 74.125.230.146, 74.125.230.147, 74.125.230.148, ...
Connecting to www.google.com|74.125.230.146|:443... connected.
ERROR: cannot verify www.google.com's certificate, issued by `/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA':
  Unable to locally verify the issuer's authority.
To connect to www.google.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
Run Code Online (Sandbox Code Playgroud)

编辑

我有这个文件/etc/pki/tls/certs/ca-bundle.crt文件,当我wget--ca-certificate指向这个文件的开关运行时,一切正常。这个文件应该放在哪里,这样我就不需要使用开关了?

BTW:curllinks做工精细,但lynx也抱怨:“SSL错误:无法获取本地颁发者证书”所以这不仅wget的问题...

Spa*_*arX 12

默认情况下,wget 将检查 openssl conf 文件 /etc/pki/tls/openssl.cnf 中定义的路径中的证书(不确定 fc8 的路径是否正确)。请检查openssl配置文件并确认路径是否正确。可能是openssl,需要更正。


Jar*_*red 10

我在 wget 找不到我的证书时遇到了问题,所以我安装了 ca-certificates

sudo apt install ca-certificates
Run Code Online (Sandbox Code Playgroud)

然后我编辑:

sudo vi /etc/wgetrc
Run Code Online (Sandbox Code Playgroud)

并添加

ca_directory=/etc/ssl/certs
Run Code Online (Sandbox Code Playgroud)

或者您可以使用此命令将其附加到末尾:

printf "\nca_directory=/etc/ssl/certs" | sudo tee -a /etc/wgetrc
Run Code Online (Sandbox Code Playgroud)

  • 或者,如果我使用“wget https://myurl --ca-directory=/etc/ssl/certs/”,它对我有用,但我不想每次都输入它,没有人有时间这样做; -) (2认同)
  • CentOS 7:`sudo yum 升级 ca 证书` (2认同)

Sha*_*den 5

您的系统不信任 Google 证书的签名链。

他们也没有提供完整的证书链,只是他们的颁发者的证书;不是 100% 达到标准,但肯定没有什么能阻止你验证链。

您的古老系统可能有一组同样古老的受信任根证书颁发机构。

相信正确的 VeriSign 证书(这里),你应该很好。