websocket ssl error

806 阅读2分钟

问题: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.

image.png 继续查找文章执行:

pip install --upgrade certifi

image.png

没有用。。。。。。 对比了两台电脑的配置也都一样 就知道是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/目录里面,执行文件即可 image.png 我这里是 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

可以看见调用成功 image.png

问题的答案就在这一行 执行以后就可以解决了

/Applications/Python\ 3.6/Install\ Certificates.command

image.png 问题解决: image.png

相关链接:
blog.csdn.net/yuezhuo_752… blog.csdn.net/xzy56514348…