问题:websocket 抓取出现ssl错误
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)
问题排查
问题:
在linux环境下使用websocket报出一下错误:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
当使用带有自签名证书的安全websocket连接(wss://)时,来自浏览器的连接可能会失败,因为它希望显示“接受此证书”对话框但无处可显示。在websocket连接成功之前,您必须首先使用相同的证书访问常规HTML页面以接受它。
解决:
这是Anaconda的一个错误,试图删除certifi : conda remove certifi.
如果它不起作用,您可以从此问题获得更多信息:https://github.com/ContinuumIO/anaconda-issues/issues/494#issuecomment-155097614
或者你可以在python脚本中禁用ssl验证:
import ssl
ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})
查看github里面的内容执行相关的命令:
conda config --set ssl_verify False
conda install certifi=14.05.14
conda config --set ssl_verify True
执行完以后再次运行websoket 然后没有什么卵用 继续执行
conda remove certifi.
继续查找文章执行:
pip install --upgrade certifi
没有用。。。。。。 对比了两台电脑的配置也都一样 就知道是ssl错误的
问题解决:
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
可以看见调用成功
问题的答案就在这一行 执行以后就可以解决了
/Applications/Python\ 3.6/Install\ Certificates.command
问题解决: