Linux Apache 配置 websocket wss

本文深入探讨了WebSocket协议及其安全版本WSS的区别与特点。WebSocket提供了客户端与服务端的双向实时通讯,WS与WSS分别运行在80与443端口,后者通过SSL证书确保数据传输安全。文章还介绍了WebSocket的建立过程与特性,如TCP基础、HTTP兼容性、数据压缩及不限制同源政策。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述ws wss区别:
WebSocket协议是html5的一种通信协议,该协议兼容我们常用的浏览器。例如Chrome、 Firefox、IE等。它可以使客户端和服务端双向数据传输更加简单快捷,并且在TCP连接进行一次握手后,就可以持久性连接,同时允许服务端对客户端推送数据。外加传统模式的协议一般HTTP请求可能会包含较长的头部,但真正有效的可能只有小部分,从而就占用了很多资源和带宽。因此WebSocket协议不仅可以实时通讯,支持扩展;也可以压缩节省服务器资源和带宽。 WS协议和WSS协议两个均是WebSocket协议的SCHEM,两者一个是非安全的,一个是安全的。也是统一的资源标志符。就好比HTTP协议和HTTPS协议的差别。非安全的没有证书,安全的需要SSL证书。(SSL是Netscape所研发,用来保障网络中数据传输的安全性,主要是运用数据加密的技术,能够避免数据在传输过程被不被窃取或者监听。)其中WSS表示在TLS之上的WebSocket。WS一般默认是80端口,而WSS默认是443端口,大多数网站用的就是80和433端口。(在高防防护过程中,80和433端口的网站是需要备案才可以接入国内的。)当然网站也会有别的端口,这种如果做高防是方案是可以用海外高防的。WS和WSS的体现形式分别是TCP+WS AS WS ,TCP+TLS+WS AS WS。服务器网址就是 URL。最后墨者安全再说下WebSocket协议的特点:建立在 TCP 协议之上,服务端实现容易;与 HTTP 协议有良好的兼容性,握手时不容易被屏蔽,可以通过各种 HTTP 代理服务器;数据轻量,实时通讯;可以发送文本和二进制数据。不限制同源,客户端可以与任意服务器端进行通讯。因此WebSocket协议的出现,为很多人解决了关于扩展以及兼容性协议的烦恼问题。

环境:
配置好ws ,监听端口自定义为626

URL为:ws://192.168.1.1.115:626
域名:ws://data.wanbo.cn:626

配置wss:

  1. 安装openssl,配置https,开启https 443 配置好证书
  2. 打开ssl.conf,找到SSLEngine On,在下面添加如下
  ProxyPass / ws://data.wanbo.cn:626
  ProxyPassReverse / ws://data.wanbo.cn:626

重启apache

systemctl restart httpd

测试js链接wss

ws = new WebSocket("wss://data.wanbo.cn");
以下是在Spring Boot中配置WebSocket wss的步骤: 1.在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-websocket</artifactId> </dependency> ``` 2.创建WebSocketConfig类并添加@Configuration和@EnableWebSocket注解: ```java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { // WebSocket配置代码 } ``` 3.实现WebSocketConfigurer接口并重写registerWebSocketHandlers方法: ```java @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/websocket") .setAllowedOrigins("*") .withSockJS(); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } ``` 4.创建MyHandler类并实现WebSocketHandler接口: ```java public class MyHandler implements WebSocketHandler { // WebSocket处理代码 } ``` 5.在application.properties文件中添加以下配置: ```properties server.port=8443 server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=changeit server.ssl.keyStoreType=PKCS12 server.ssl.keyAlias=tomcat ``` 6.使用keytool生成证书: ```shell keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650 ``` 7.启动应用程序并访问wss://localhost:8443/websocket即可连接到WebSocket服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值