如何在CentOS Linux 7(Core)、Apache/2.4.54(cPanel)服务器中启用SSL加密WebSocket(WSS)
解决CentOS 7 + cPanel/Apache环境下WebSocket转WSS的问题
我之前帮朋友处理过一模一样的情况,在cPanel+Apache的环境下把ws转成wss其实不难,主要靠Apache的反向代理来实现,同时依托你已经部署好的Let's Encrypt证书完成加密。下面是具体步骤:
1. 确认Apache已启用必要模块
cPanel环境下通常这些模块默认就开了,但还是先检查下更稳妥:
- 用root权限登录服务器终端,执行:
httpd -M | grep -E "(proxy|proxy_http|proxy_wstunnel)"
如果能看到proxy_module、proxy_http_module、proxy_wstunnel_module这三个模块(状态是shared或static),就没问题。要是缺了,直接通过WHM的EasyApache 4界面搜索并启用这三个模块就行,别手动改配置文件,容易搞砸cPanel的默认设置。
2. 添加Apache反向代理配置
cPanel不建议直接修改主配置文件,咱们给目标域名加自定义配置:
- 登录WHM,找到
Apache Configuration->Include Editor - 选择
Virtual Host Include,然后挑你要配置的域名(推荐单个域名,别全局乱改),类型选Post Virtual Host Include(加载顺序靠后,优先级更高) - 粘贴下面的配置代码,记得根据你的实际需求调整路径:
RewriteEngine On # 处理WebSocket的升级请求,确保wss能正确转发到ws服务 RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /ws/(.*) ws://localhost:8090/$1 [P,L] # 反向代理普通HTTP请求(如果你的WebSocket服务需要同时处理HTTP的话可选) ProxyPass /ws http://localhost:8090 ProxyPassReverse /ws http://localhost:8090 # 强制该路径使用SSL,并且明确代理WebSocket连接 <Location "/ws"> SSLRequireSSL ProxyPass ws://localhost:8090 ProxyPassReverse ws://localhost:8090 </Location>
说明:这里用
/ws作为WSS的访问路径,比如你的前端代码里原来写ws://yourdomain.com:8090,现在改成wss://yourdomain.com/ws就行。如果你的WebSocket服务有特定的子路径,比如ws://localhost:8090/chat,那上面的规则也要对应调整。
3. 限制8090端口仅本地访问(安全优化)
为了避免你的原始WS服务直接暴露在外网,咱们把8090端口限制成只有服务器本地能访问:
- 终端执行以下命令:
firewall-cmd --add-rich-rule='rule family="ipv4" source address="127.0.0.1" port port="8090" protocol="tcp" accept' --permanentfirewall-cmd --reload
这样只有Apache能访问8090端口,外部用户碰不到,更安全。
4. 重启Apache生效配置
在WHM里找到Restart Services -> HTTP Server (Apache)点重启就行,或者终端跑命令:systemctl restart httpd
5. 测试WSS连接
现在可以验证配置是否生效了:
- 前端代码把WS地址改成
wss://yourdomain.com/ws(对应你配置的路径),测试连接是否正常 - 也可以用命令行工具
wscat测试(先装npm install -g wscat):wscat -c wss://yourdomain.com/ws
如果能成功连接并收发消息,就说明搞定了!
一些注意事项
- 确保你的WebSocket服务绑定的是
localhost或127.0.0.1,别绑定公网IP,避免绕开Apache直接访问 - Let's Encrypt证书自动续期后,Apache会自动用新证书处理WSS连接,不用额外操作
- 如果碰到403错误,检查下mod_security是不是拦截了请求,可以临时关闭测试,或者给WebSocket的升级请求加放行规则
内容的提问来源于stack exchange,提问作者yasaman sabahi
相关产品推荐
相关产品推荐

