我正在开发一个 Python 应用程序,通过安全的 websocket 协议与在本地主机上运行的服务进行通信。这是一个示例代码:
import json
import asyncio
import websockets
import ssl
import certifi
ssl_context = ssl.create_default_context()
ssl_context.load_verify_locations(certifi.where())
ssl_context.load_default_certs()
query = {
"jsonrpc": "2.0",
"method": "queryHeadsets",
"params": {},
"id": 1
}
json = json.dumps(query)
async def query(json):
async with websockets.connect("wss://emotivcortex.com:54321") as ws:
await ws.send(json)
response = await ws.recv()
print(response)
asyncio.get_event_loop().run_until_complete(query(json))
Run Code Online (Sandbox Code Playgroud)
问题是 ssl 握手不断失败并出现以下错误:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
Run Code Online (Sandbox Code Playgroud)
我运行的是 Windows 10,Python 3.7.3 64 位
$pip list
Package Version
---------- --------
certifi …Run Code Online (Sandbox Code Playgroud)