微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何为安全的 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 举报,一经查实,本站将立刻删除。