mac 错误 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)
时间: 2023-11-12 22:07:14 浏览: 41
这个错误通常是因为您的Python环境缺少必要的根证书,或者是因为您的网络环境中存在中间人攻击。您可以尝试以下解决方法:
1. 升级您的Python版本到最新版本。
2. 安装最新版本的根证书包。您可以从 https://curl.se/ca/cacert.pem 下载证书包,然后将其放置在Python安装目录的Lib\site-packages\certifi目录下。
3. 禁用证书验证(不推荐),可以在您的Python代码中添加以下代码:
```
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
```
请注意,禁用证书验证可能会导致安全问题,因此请谨慎使用。如果您的网络环境存在中间人攻击,建议使用VPN等安全网络工具来保证数据的安全传输。
相关问题
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1123)
当使用urllib.urlopen打开一个https链接时,如果目标网站使用的是自签名的证书,就会抛出一个[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1123)的错误消息。解决这个问题的方法有两种:
1.全局取消证书验证(当项目对安全性问题不太重视时,推荐使用,可以全局取消证书的验证,简易方便):
```python
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
```
2.手动添加证书:
```python
import ssl
import urllib.request
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
url = 'https://example.com'
req = urllib.request.Request(url)
response = urllib.request.urlopen(req, context=context)
```
error[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)
这个错误通常是由于Python无法验证SSL证书的有效性导致的。有几种可能的解决方法:
1. 忽略证书验证,但这会降低安全性。可以在你的代码中添加以下行来忽略证书验证:
```
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
```
2. 更新证书存储库。这将确保Python能够验证证书的有效性。你可以从https://curl.haxx.se/ca/cacert.pem下载证书存储库,然后将其保存到本地,并使用以下行来指定它的位置:
```
import ssl
ssl._create_default_https_context = ssl.create_default_context(cafile="/path/to/cacert.pem")
```
注意,这可能需要管理员权限。
3. 确保你的系统时间正确设置。如果你的系统时间不正确,则可能会导致证书验证失败。请确保你的系统时间正确设置。
希望这些解决方案可以帮助你解决问题。