OpenSSL 是一个强大的加密库,它可以帮助你实现安全的 WebSocket 通信。以下是使用 OpenSSL 实现安全 WebSocket 通信的基本步骤:
sudo apt-get install openssl req 命令来生成它们:openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 这将生成一个名为 cert.pem 的证书文件和一个名为 key.pem 的私钥文件。请妥善保管这些文件,因为它们将用于建立安全连接。
以下是一个使用 Python 和 websockets 库的示例:
import asyncio import websockets import ssl ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) ssl_context.load_cert_chain('cert.pem', 'key.pem') async def echo(websocket, path): async for message in websocket: await websocket.send(f"Echo: {message}") start_server = websockets.serve(echo, 'localhost', 8765, ssl=ssl_context) asyncio.get_event_loop().run_until_complete(start_server) asyncio.get_event_loop().run_forever() 以下是一个使用 Python 和 websockets 库的示例:
import asyncio import websockets import ssl ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) ssl_context.check_hostname = False ssl_context.verify_mode = ssl.CERT_NONE async def hello(): uri = "wss://localhost:8765" async with websockets.connect(uri, ssl=ssl_context) as websocket: await websocket.send("Hello, WebSocket!") response = await websocket.recv() print(f"Received: {response}") asyncio.get_event_loop().run_until_complete(hello()) 现在,你已经使用 OpenSSL 实现了安全的 WebSocket 通信。服务器和客户端将使用 SSL/TLS 加密来保护它们之间的数据传输。