本文编写于 1406 天前,最后修改于 1406 天前,其中某些信息可能已经过时。
MacOS Python3.7 出现SSL: CERTIFICATE_VERIFY_FAILED报错解决方案
今天在 Python3 中试用 Tencent Cloud Api 的时候出现了这样一种情况
执行的时候出现了SSL: CERTIFICATE_VERIFY_FAILED
情况
[TencentCloudSDKException] code:ClientNetworkError message:[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056) requestId:None
还以为是传入的参数有问题,然而看了官方仓库后才发现这个是普遍问题
找到了官方的说法:
证书问题
在 Mac 操作系统安装 Python 3.6
或以上版本时,可能会遇到证书错误:Error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056).
。这是因为在 Mac 操作系统下,Python 不再使用系统默认的证书,且本身也不提供证书。在进行 HTTPS
请求时,需要使用 certifi
库提供的证书,但 SDK 不支持指定,所以只能使用 /Applications/Python 3.6/Install Certificates.command
命令安装证书才能解决此问题。
解决方案
这样就很容易解决了
到/Applications/Python 3.6/
目录里面,执行文件即可

我这里是 Python3.7 所以得更改地址为3.7 那么在Terminal中,执行
/Applications/Python\ 3.7/Install\ Certificates.command
然后安装成功即可使用api
XXX@XXX /Applications/Python 3.7 -> /Applications/Python\ 3.7/Install\ Certificates.command
-- pip install --upgrade certifi
Collecting certifi
Using cached https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl
Installing collected packages: certifi
Successfully installed certifi-2019.9.11
WARNING: You are using pip version 19.1.1, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
-- removing any existing file or link
-- creating symlink to certifi certificate bundle
-- setting permissions
-- update complete
可以看见调用成功
