🟢urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`

# 解决 `urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`

## 完整报错信息

```plaintext
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

解决思路

下载更新的证书,并进行替换,一步到位。

1. 查看 SSL 证书默认位置

使用以下代码查看 SSL 证书的默认位置:

import ssl
print(ssl.get_default_verify_paths())

执行结果可以看到:

DefaultVerifyPaths(cafile=None, capath=None, openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/home/qtt/software/anaconda/envs/mamba_torch2.0.1/ssl/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/home/qtt/software/anaconda/envs/mamba_torch2.0.1/ssl/certs')

其中 cafile=None,显示证书不存在,但是进入 openssl_cafile 路径下又可以看到 cacert.pem 文件,推测可能是什么原因导致不识别。

2. 下载 CA 文件

从以下链接下载最新的 cacert.pem 文件:

下载 cacert.pem

下载好新的 cacert.pem 文件后,放入上面的 openssl_cafile 路径下,进行替换。

最后

再运行代码就可以解决问题了!

Last updated