Python Websocket安全[SSL:CERTIFICATE\u VERIFY\u FAILED](\u SSL.c:777)
我正在制作一个需要从WebSocket安全服务器接收实时消息的程序 我试着用JavaScript完成这项任务,效果非常好Python Websocket安全[SSL:CERTIFICATE\u VERIFY\u FAILED](\u SSL.c:777),python,python-3.x,ssl,websocket,ssl-certificate,Python,Python 3.x,Ssl,Websocket,Ssl Certificate,我正在制作一个需要从WebSocket安全服务器接收实时消息的程序 我试着用JavaScript完成这项任务,效果非常好 但是JavaScript不能满足我的项目的需要。所以我尝试用Python做同样的事情。但是没有成功 我正在努力纠正的错误是: [SSL:CERTIFICATE\u VERIFY\u FAILED]证书验证失败(\u SSL.c:777) 我假设JavaScript没有这个问题,因为它使用浏览器来验证连接 我使用的是: Python 3.6.4 巨蟒3 视窗10 我真的不知
但是JavaScript不能满足我的项目的需要。所以我尝试用Python做同样的事情。但是没有成功 我正在努力纠正的错误是: [SSL:CERTIFICATE\u VERIFY\u FAILED]证书验证失败(\u SSL.c:777) 我假设JavaScript没有这个问题,因为它使用浏览器来验证连接 我使用的是:
- Python 3.6.4
- 巨蟒3
- 视窗10
我可以通过更改代码来解决此问题吗?
我应该使用另一个库来建立连接吗?
这是Python还是Anaconda的问题?
是不是我搞不懂的新手错误 以下是我的Python代码:
import websocket
import websocket
import threading
import time
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
def run(*args):
for i in range(3):
time.sleep(1)
data = ws.recv()
print(data)
time.sleep(1)
ws.close()
print("thread terminating...")
thread.start_new_thread(run, ())
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://stream.binance.com:9443/ws/bnbbtc@ticker",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
如果有人感兴趣,以下是我的JavaScript代码:
var socket=新的WebSocket('wss://hostname:port/dir/dir@股票代码“);
socket.onopen=函数(事件)
{
console.log('connected');
}
socket.onmessage=函数(e){
var server_message=e.data;
console.log(服务器消息);
}
这是Anaconda中的错误,请尝试删除certifi:conda删除certifi
如果不起作用,您可以从本期获得更多信息:
或者,您可以在python脚本中禁用ssl验证:
import ssl
ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})
这是Anaconda中的错误,请尝试删除certifi:
conda remove certifi
如果不起作用,您可以从本期获得更多信息:
或者,您可以在python脚本中禁用ssl验证:
import ssl
ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})
成功了!非常感谢。我仍然需要使用SSL做同样的事情。但这已经是一个巨大的进步。至少现在我知道错误在哪里了。谢谢!:)嗨@WerexZenok你能想出一个办法吗?我现在陷入了同样的问题,我需要与实际使用SSL相同的东西,但在anaconda中没有,只有pythonHi@MayurJadhav。对不起,之前没有回答。我中断了我的项目好几年了。我不记得我到底做了什么,但我想我没有解决问题。我现在正试图为我的其他项目做类似的事情。我解决了SSL部分,如果您感兴趣并且仍然卡住了,我可以发表一篇新的帖子来解释我是如何做到的。您好@WerexZenok谢谢您的回复,我也找到了解决SSL问题的方法,我正在使用这个客户机:设置这个环境变量帮助了我:WEBSOCKET\u client\u CA\u BUNDLEWorked像个符咒,谢谢!成功了!非常感谢。我仍然需要使用SSL做同样的事情。但这已经是一个巨大的进步。至少现在我知道错误在哪里了。谢谢!:)嗨@WerexZenok你能想出一个办法吗?我现在陷入了同样的问题,我需要与实际使用SSL相同的东西,但在anaconda中没有,只有pythonHi@MayurJadhav。对不起,之前没有回答。我中断了我的项目好几年了。我不记得我到底做了什么,但我想我没有解决问题。我现在正试图为我的其他项目做类似的事情。我解决了SSL部分,如果您感兴趣并且仍然卡住了,我可以发表一篇新的帖子来解释我是如何做到的。您好@WerexZenok谢谢您的回复,我也找到了解决SSL问题的方法,我正在使用这个客户机:设置这个环境变量帮助了我:WEBSOCKET\u client\u CA\u BUNDLEWorked像个符咒,谢谢!