mac终端<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:997)>这个报错怎么解决
时间: 2023-11-12 07:07:45 浏览: 311
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
这个错误一般是由于 Python 使用的 SSL 证书不被信任导致的。你可以尝试下面两种方法来解决这个问题。
**方法一:更新 SSL 证书**
可以尝试更新 SSL 证书,具体步骤如下:
1. 下载 `Install Certificates.command` 脚本文件,可以从 [https://www.python.org/downloads/release/python-2718/](https://www.python.org/downloads/release/python-2718/) 下载对应 Python 版本的安装程序,然后在安装程序的目录里找到该脚本文件。
2. 在终端中运行以下命令:
```
sudo sh /path/to/Install\ Certificates.command
```
其中,`/path/to/`是 `Install Certificates.command` 脚本文件所在的路径。
3. 输入管理员密码,等待脚本执行完成。
4. 重启终端,再次执行命令,看看是否已经解决了问题。
**方法二:禁用 SSL 证书验证**
如果无法更新 SSL 证书,可以尝试禁用 SSL 证书验证。但需要注意的是,禁用 SSL 证书验证可能会存在安全风险,请谨慎使用。
在 Python 中可以通过设置 `verify` 参数为 `False` 来禁用 SSL 证书验证,例如:
```python
import requests
response = requests.get('https://example.com', verify=False)
```
在终端中可以通过设置 `SSL_CERT_FILE` 环境变量来禁用 SSL 证书验证,例如:
```shell
export SSL_CERT_FILE=/dev/null
```
或者在 Python 脚本中设置 `SSL_CERT_FILE` 环境变量,例如:
```python
import os
os.environ['SSL_CERT_FILE'] = '/dev/null'
import requests
response = requests.get('https://example.com')
```
阅读全文