假设我们有一个 WebSocket 服务器位于 ws://example.com/socket
上,并且我们希望将其配置为使用 WSS 进行加密和安全连接。
以下是配置 WSS 的举例说明:
-
生成 SSL 证书:使用 OpenSSL 工具生成自签名的 SSL 证书,保存为
server.crt
和server.key
文件。 -
配置 Nginx 服务器:将 SSL 证书配置到 Nginx 服务器上。在 Nginx 配置文件中,添加以下配置:
server { listen 443; server_name example.com; ssl on; ssl_certificate /path/to/server.crt; ssl_certificate_key /path/to/server.key; location /socket { proxy_pass http://localhost:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
在上述配置中,我们将 SSL 证书和私钥文件的路径指定为
/path/to/server.crt
和/path/to/server.key
。proxy_pass
部分是将请求转发到 WebSocket 服务器的配置。 -
在客户端使用
wss://
协议连接:在客户端的代码中,将原来的ws://
URL 替换为wss://
协议的 URL,例如:const socket = new WebSocket('wss://example.com/socket');
通过使用
wss://example.com/socket
,客户端将使用 WSS 协议连接到服务器。
配置完成后,当客户端使用 wss://
协议连接到 example.com/socket
时,Nginx 服务器将使用 SSL 证书进行加密,并将请求转发到 WebSocket 服务器进行处理。这样就实现了 WebSocket 的安全连接。