python websocket.WebSocketApp 连接报错,Connection on_error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)
时间: 2023-12-16 08:26:00 浏览: 265
这个错误是由于 SSL 证书验证失败导致的。有可能是你连接的服务器 SSL 证书不被信任,也有可能是本地缺少根证书。
你可以尝试以下方法解决这个问题:
1. 禁用 SSL 证书验证
虽然不推荐这种方法,但是在测试阶段可以暂时使用。在创建 WebSocketApp 对象时,传入参数 `ssl_cert_reqs=ssl.CERT_NONE`,即可禁用 SSL 证书验证。示例代码如下:
```python
import websocket
import ssl
ws = websocket.WebSocketApp("wss://example.com",
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close,
ssl_cert_reqs=ssl.CERT_NONE)
```
2. 添加根证书
在本地添加服务器的根证书可以解决 SSL 证书验证失败的问题。你可以从浏览器中导出服务器 SSL 证书,然后将其添加到本地的信任列表中。
具体操作方法因操作系统和浏览器不同而有所不同。如果你使用的是 macOS 系统,可以使用 Keychain Access 应用程序来添加根证书。如果你使用的是 Windows 系统,可以使用 certmgr.msc 应用程序来添加根证书。
添加根证书后,重新运行你的 Python 代码,应该就可以正常连接 WebSocket 服务器了。
阅读全文