如何为安全的 PYTHON websocket 服务器设置 PEM 文件?

问题描述

我在 PYTHON 中创建了一个 websocket 服务器

import asyncio
import pathlib
import ssl
import websockets

async def hello(websocket,path):
    name = await websocket.recv()
    print(f"< {name}")

    greeting = f"Hello {name}!"

    await websocket.send(greeting)
    print(f"> {greeting}")

ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
localhost_pem = pathlib.Path(__file__).with_name("localhost.pem")
ssl_context.load_cert_chain(localhost_pem)

start_server = websockets.serve(
    hello,"localhost",8765,ssl=ssl_context
)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

这是客户

import asyncio
import pathlib
import ssl
import websockets

ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
localhost_pem = pathlib.Path(__file__).with_name("localhost.pem")
ssl_context.load_verify_locations(localhost_pem)

async def hello():
    uri = "wss://psXXXXXX.dreamhostps.com:8765"
    async with websockets.connect(
        uri,ssl=ssl_context
    ) as websocket:
        name = input("What's your name? ")

        await websocket.send(name)
        print(f"> {name}")

        greeting = await websocket.recv()
        print(f"< {greeting}")

asyncio.get_event_loop().run_until_complete(hello())

我通过运行服务器 python 文件在我的主机提供商中启动 python 服务器,完全没有问题 但是当我尝试运行我的 python 客户端时,SERVER 拒绝连接。一切似乎都是正确的,但我不太确定如何在 Dreamhost 中为我的 VPS 服务器设置这个 localhost.pem。

任何关于如何做到这一点的指导方针将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)