WebSocket实战之四WSS配置

一、前

上一篇文章
WebSocket实战之三遇上PAC ,碰到的问题只能上安全的WebSocket(WSS)才能解决,配置证书还是挺麻烦的,主要是每年都需要重新更新证书,我配置过的证书最长有效期也只有两年,搞不清楚为什么CA证书的有效期那么短,是为了多收钱吗?

注:网上找的一张图,理论与实践相结合,理论指导实践,实践验证理论。

二、配置WSS

WebSocket协议定义了WebSocket(WS://)以及WebSocket安全(WSS://)两种前缀,WebSocket使用HTTP握手然后升级为WebSocket协议进行通信,WebSocket安全(WSS)使用HTTPS握手然后升级为安全的WebSocket协议,WSS其实就是WS+TLS。

1、Nginx配置证书

map指令根据客户端请求http_upgrade变量的值,来改变connection_upgrade的值。如果没有规则匹配的话connection_upgrade值为upgrade,如果http_upgrade为空字符串,$connection_upgrade值为close。

snakeoil.conf

注:WSS证书的配置与HTTPS证书配置是一样的,另外/websocket/几行代码就是用来将WebSocket的连接转发到WebSocket应用。

2、客户端代码

只需要把ws改成wss就可以。

注:配置WSS几乎不用更改程序代码。

三、WSS协议抓包分析

复制代码
tcpdump -ieth0 port 443 -w wss.pcap

将这张图与WebSocket实战之二协议分析 对比,我们发现基于TLS的WSS,在网络传输过程中完全被加密了,而如果是未加密的WS协议,一些代理服务器可能理解不了类似101响应码会导致WebSocket握手失败,而使用WSS协议,数据是加密的,代理只能允许连接成功并且允许WebSocket数据流通过,不然会造成误伤。

注:使用了WSS一个方面数据传输更安全,数据抓包看不到传的是什么东东,另外一方面可以保证能够顺利穿透代理服务器和防火墙。

chrome://net-internals

在浏览器端除了可以用Chrome开发者工具调试WebSocket,还可以使用net-internals进行更低级的网络诊断,可以查看WebSocket套接字的细节。

四、WSS与HTTPS关系

TCP->HTTP

TCP->TLS->HTTPS

TCP->WS 使用HTTP协议进行握手,然后用WS进行数据传输。

TCP->TLS->WSS 使用HTTPS协议进行握手,然后用WSS进行数据传输。

相关推荐
Yang96111 天前
无损精准查缆:鼎讯 G-340A 在铁路高速场景的应用
网络·信息与通信
开开心心就好1 天前
免费流畅的远程控制实用工具
linux·运维·服务器·网络·智能手机·excel
yyuuuzz1 天前
aws的核心概念与常见使用场景
运维·服务器·网络·云计算·aws
ElevenS_it1881 天前
网络没完全断但业务已经受影响:「灰色故障」排查的完整方法论
运维·服务器·网络
liudanzhengxi1 天前
CRM系统技术文章
linux·服务器·网络·人工智能·新人首发
威联通安全存储1 天前
制造业数据防勒索:QNAP 快照与 WORM 实践
网络·python
号码认证服务2 天前
客户看到来电显示公司名会更愿意接听吗?企业号码认证提升ROI
服务器·网络·c++·经验分享·智能手机·云计算·php
万法若空2 天前
HevSocks5Tunnel 安装配置详细教程
网络·socks5
Vodka~2 天前
一根网线——Windows共享网络给Linux访问互联网
linux·网络·windows
打码人的日常分享2 天前
大模型及智能体安全风险防范与治理策略(PPT)
运维·网络·数据库·安全·云计算·制造