wget 由于证书问题而失败

Sér*_*gio 6 networking wget certificates openssl

与wget 因证书问题而中断的问题相同:

\n

do-release-upgrade16.04 至 18.01之后

\n
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. \nCheck your Internet connection or proxy settings\n
Run Code Online (Sandbox Code Playgroud)\n

wget https://changelogs.ubuntu.com/meta-release-lts

\n
--2018-09-15 08:03:41--  https://changelogs.ubuntu.com/meta-release-lts\nResolving changelogs.ubuntu.com (changelogs.ubuntu.com)... 91.189.95.15, 2001:67c:1560:8008::11\nConnecting to changelogs.ubuntu.com (changelogs.ubuntu.com)|91.189.95.15|:443... connected.\nERROR: cannot verify changelogs.ubuntu.com\'s certificate, issued by \xe2\x80\x98CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US\xe2\x80\x99:\n  Unable to locally verify the issuer\'s authority.\nTo connect to changelogs.ubuntu.com insecurely, use `--no-check-certificate\'.\n
Run Code Online (Sandbox Code Playgroud)\n

另外(作为 root):

\n
# update-ca-certificates\n\nUpdating certificates in /etc/ssl/certs...\n0 added, 0 removed; done.\nRunning hooks in /etc/ca-certificates/update.d...\ndone.\n
Run Code Online (Sandbox Code Playgroud)\n
\n
# wget https://www.google.com/\n\n--2018-09-16 16:54:31--  https://www.google.com/\nResolving www.google.com (www.google.com)... 216.58.201.164, 2a00:1450:4003:80a::2004\nConnecting to www.google.com (www.google.com)|216.58.201.164|:443... connected.\nERROR: cannot verify www.google.com\'s certificate, issued by \xe2\x80\x98CN=Google Internet Authority G3,O=Google Trust Services,C=US\xe2\x80\x99:\n  Unable to locally verify the issuer\'s authority.\nTo connect to www.google.com insecurely, use `--no-check-certificate\'.\n
Run Code Online (Sandbox Code Playgroud)\n

2018年10月23日更新:

\n
openssl s_client -connect www.google.com:443 -debug\n
Run Code Online (Sandbox Code Playgroud)\n

失败

\n
openssl s_client  -connect www.google.com:443 --debug --CApath /etc/ssl/certs/  \n
Run Code Online (Sandbox Code Playgroud)\n

作品

\n
 wget https://www.google.com/  --ca-directory=/etc/ssl/certs/ \n
Run Code Online (Sandbox Code Playgroud)\n

有效,那么为什么默认的 ca 目录不行呢/etc/ssl/certs/?我要设置它吗?

\n

新更新并解决:

\n
strace -e openat wget https://your-url\n
Run Code Online (Sandbox Code Playgroud)\n

我看到它正在使用/usr/local/lib/libssl.so.1.1,于是我找到了一个openssl安装在上面/usr/local,删除它后,问题就解决了。

\n

谢谢

\n

小智 4

主题:证书问题帮助我解决了问题。

用户mirabilos解释重新安装 ca 证书的命令

sudo apt-get install --reinstall ca-certificates
sudo apt-get -f install
sudo dpkg --purge --force-depends ca-certificates
sudo apt-get -f install
Run Code Online (Sandbox Code Playgroud)


小智 1

我已经安装了。它适用于 Ubuntu 16.4 LTS

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