执行时
wget https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf
我有这个错误:
--2020-06-03 20:55:06-- https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf
Resolving docs.conda.io (docs.conda.io)... 104.31.71.166, 104.31.70.166, 172.67.149.185, ...
Connecting to docs.conda.io (docs.conda.io)|104.31.71.166|:443... connected.
ERROR: cannot verify docs.conda.io's certificate, issued by ‘CN=SSL-SG1-GFRPA2,OU=Operations,O=Cloud Services,C=US’:
Unable to locally verify the issuer's authority.
To connect to docs.conda.io insecurely, use `--no-check-certificate'.
上面 URL 中的证书链包含 4 个证书。
我为解决这个问题做了以下尝试:
0)打开 URL 时,从 Chrome 中提取链中的 4 个证书
1)为了确保不丢失证书,我把所有4个证书(即,,,)conda1.crt
都放进去了conda2.crt
conda3.crt
conda4.crt
/usr/share/ca-certificates/mozilla/
sudo cp conda*.crt /usr/share/ca-certificates/mozilla/
2)并在末尾sudo vi /etc/ca-certificates.conf
附加mozilla/conda1.crt
, mozilla/conda2.crt
, mozilla/conda3.crt
,mozilla/conda4.crt
3)运行sudo update-ca-certificates -f
4)我可以看到在 /etc/ssl/certs 下创建的符号链接,如下所示:conda1.pem -> /usr/share/ca-certificates/mozilla/conda1.crt
,,conda2.pem -> /usr/share/ca-certificates/mozilla/conda2.crt
等等。
确认:
openssl verify -no-CAfile -no-CApath -partial_chain -CAfile conda1.pem conda2.pem
conda2.pem: OK
openssl verify -no-CAfile -no-CApath -partial_chain -CAfile conda2.pem conda3.pem
conda3.pem: OK
openssl verify -no-CAfile -no-CApath -partial_chain -CAfile conda3.pem conda4.pem
conda4.pem: OK
结果:wget 仍然失败
附言 自一个月前以来,我在很多方面和很多 URL 上都遇到了这个 SSL 问题(之前没有问题):
- 我无法执行 conda search a_package
- 我无法在 python 代码中执行 request.get(url)
- 我无法在我的 ubuntu 系统内的浏览器中打开它(只能在 windows 中访问)
- 我无法在 Scala 中执行 fromUrl
看来问题不仅仅出在一两个证书上,而是我的 ubuntu 系统中的系统问题。看起来我的信任库中缺少证书列表。
uname
=> Linux 用户 5.3.0-53-通用 #47~18.04.1-Ubuntu SMP 2020 年 5 月 7 日星期四 13:10:50 UTC x86_64 x86_64 x86_64 GNU/Linux
我正在使用 Oracle VirtualBox。