原因1:Git无法验证SSL证书
这个错误通常是由于Git无法验证SSL证书导致的。您可以尝试以下方法解决此问题:
- 确认您的计算机上是否安装了正确的SSL证书。如果没有,请下载并安装它们。
- 您可以使用以下命令在Mac上安装SSL证书:
brew install openssl
如果您已经安装了OpenSSL,可以使用以下命令将证书添加到Git的信任存储中:
git config --global http.sslVerify true
- 将证书添加到Git的信任存储中。可以使用以下命令将证书添加到全局信任存储中:
git config --global http.sslVerify true
- 如果上述方法无效,则可以尝试禁用SSL验证。但是请注意,这可能会导致安全风险。使用以下命令禁用SSL验证:
git config --global http.sslVerify false
原因2:直接用urllib导致本地验证失败
python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED]…>_呆萌的代Ma的博客-CSDN博客
完整报错是:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:xxx)>
解决方法
在使用urllib.request.Request(url)前,添加代码:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
问题解析
这是因为访问的网站是https://,需要SSL认证,而直接用urllib会导致本地验证失败(具体原因未查明),所以使用ssl._create_unverified_context关闭认证
报错重现
在执行到request = urllib.request.Request(url, data)时报错,取消掉这行向上两行的注释,即可解决问题
import json
import urllib
defbaidu_search():
url ="https://www.baidu.com/s?"
data ={"wd":"啊哈"}
data = json.dumps(data).encode('GBK')# import ssl# ssl._create_default_https_context = ssl._create_unverified_context # 如果不添加这两行,下一行报错
request = urllib.request.Request(url, data)
response = urllib.request.urlopen(request)
content = response.read()print(str(content))if __name__ =='__main__':
baidu_search()
版权归原作者 大痴小乙 所有, 如有侵权,请联系我们删除。