1. Upgrade JDK to 1.8
2. jetty-ssl.xml
<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <!-- =============================================================== --> <!-- Configure SSL for the Jetty Server --> <!-- this configuration file should be used in combination with --> <!-- other configuration files. e.g. --> <!-- java -jar start.jar etc/jetty-ssl.xml --> <!-- --> <!-- alternately, add to the start.ini for easier usage --> <!-- =============================================================== --> <Configure id="Server" class="org.eclipse.jetty.server.Server"> <!-- if NIO is not available, use org.eclipse.jetty.server.ssl.SslSocketConnector --> <New id="sslContextFactory" class="org.eclipse.jetty.http.ssl.SslContextFactory"> <Set name="KeyStore"><Property name="jetty.home" default="." />/etc/keystore-2015</Set> <Set name="KeyStorePassword">OBF:1wua1u9d1vgv1l1g1wgi1xmk1xmq1wfg1kxm1vfz1uaxxxxxx</Set> <Set name="KeyManagerPassword">OBF:1wua1u9d1vgv1l1g1wgi1xmk1xmq1wfg1kxm1vfz1uaxxxxxx</Set> <Set name="TrustStore"><Property name="jetty.home" default="." />/etc/keystore-2015</Set> <Set name="TrustStorePassword">OBF:1wua1u9d1vgv1l1g1wgi1xmk1xmq1wfg1kxm1vfz1uaxxxxxxxx</Set> <!-- <Set name="IncludeCipherSuites"> <Array type="String"> <Item>TLS_DHE_RSA.*</Item> <Item>TLS_ECDHE.*</Item> </Array> </Set>--> <Set name="ExcludeCipherSuites"> <Array type="String"> <Item>.*NULL.*</Item> <Item>.*RC4.*</Item> <Item>.*MD5.*</Item> <Item>.*DES.*</Item> <Item>.*DSS.*</Item> </Array> </Set> <Set name="ExcludeProtocols"> <Array type="java.lang.String"> <Item>SSLv3</Item> </Array> </Set> </New> <Call name="addConnector"> <Arg> <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> <Arg><Ref id="sslContextFactory" /></Arg> <Set name="Port">443</Set> <Set name="maxIdleTime">30000</Set> <Set name="Acceptors">2</Set> <Set name="AcceptQueueSize">100</Set> </New> </Arg> </Call> </Configure>
3. add System Property -Djdk.tls.ephemeralDHKeySize=2048
4. test it https://www.ssllabs.com/ssltest/index.html
info:
http://www.openssl.org/docs/apps/ciphers.html
BTW: jetty OBF password
@echo off call cd /d %~dp0 echo %JAVA_8% call "%JAVA_8%\bin\java" -cp jetty-http-9.3.0.v20150612.jar;jetty-util-9.3.0.v20150612.jar org.eclipse.jetty.util.security.Password PASSWORD pause
相关推荐
6. **服务器端实现**:WebSocket服务器端实现有多种选择,如Node.js的ws库、Java的Jetty WebSocket、Python的Tornado WebSockets等。 在实际应用中,WebSocket的使用可以大大提升用户体验,例如,在实时聊天应用中...
1. **服务器端实现**:服务器端需要支持WebSocket协议,可以使用Node.js的ws库,Java的Jetty或Tomcat,Python的Tornado或Flask-SocketIO等库来实现。 2. **客户端实现**:在前端,JavaScript是主要的实现语言,利用...
1. **握手(Handshake)**:WebSocket连接开始时,客户端会发送一个HTTP Upgrade请求到服务器,请求升级到WebSocket协议。服务器响应后,连接变为WebSocket连接。 2. **帧(Frames)**:WebSocket数据通过帧的形式...
在实际开发中,开发者可以使用各种WebSocket库,如JavaScript的Socket.IO、ws库,Python的 autobahn,Java的Jetty等。这些库简化了WebSocket的使用,提供了错误处理和兼容性支持。 总的来说,WebSocket是现代Web...
- **服务器端**:服务器端实现可以选择多种编程语言,如Node.js的ws库、Java的Jetty或Tomcat WebSocket API、Python的Tornado框架等。服务器端同样需要处理连接建立、数据接收、发送和关闭等逻辑。 在部署WebSocket...
5. **安全性**:WebSocket连接需要考虑安全性,如使用WSS(WebSocket over SSL/TLS)确保数据传输的安全,以及通过认证和授权限制访问。 6. **心跳与保活**:为了检测并处理长时间无数据交换导致的连接失效,通常会...
4. **后端实现**:后端服务器通常使用特定的WebSocket库来处理WebSocket连接,例如Node.js中的ws库,Java的Jetty或Tomcat,Python的Tornado等。服务器端可以创建WebSocket服务器监听特定端口,当接收到新的连接请求...
客户端首先发送一个Upgrade请求到服务器,其中包含"Upgrade: websocket"和"Connection: Upgrade"头,以及一个由WebSocket协议定义的Sec-WebSocket-Key头,用于验证连接。服务器回应一个101 Switching Protocols响应...
例如,Node.js有ws库,Python有Flask-SocketIO,Java有Jetty或Tomcat的WebSocket API。服务器端代码会监听WebSocket连接,处理接收到的数据,并发送响应。 2. **客户端实现**:在浏览器端,WebSocket API允许开发者...
1. **WebSocket握手**:客户端通过发送一个`Upgrade`请求到服务器来建立WebSocket连接,这个请求包含了`Upgrade`头(值为`websocket`)、`Connection`头(值为`Upgrade`)以及`Sec-WebSocket-Key`和`Sec-WebSocket-...
6. **部署与配置**:WebSocket应用需要在支持WebSocket的服务器上运行,比如Tomcat、Jetty等。服务器配置可能涉及端口设置、SSL证书配置等。 这个"WebSocket小demo"是一个很好的学习资源,可以帮助开发者快速理解...
4. **安全性**:WebSocket连接可以通过WSS(WebSocket over SSL/TLS)来提供加密和身份验证,确保数据在传输过程中的安全。 5. **扩展性**:WebSocket协议允许自定义扩展,以满足特定应用的需求,如压缩、心跳机制...
6. **安全性**:WebSocket可以通过WSS(WebSocket over SSL/TLS)提供安全连接,确保数据在传输过程中的安全。 在"WEBSOCKET"这个文件中,可能包含以下内容: - 一个WebSocket服务器的实现,可能是用Node.js、...
2. **服务器框架选择**:在实际开发中,开发者可能会选择已有的WebSocket服务器框架,如Node.js中的`ws`库,Java中的`Jetty`或`Spring WebSocket`,Python的`Flask-SocketIO`等。这些框架提供了处理WebSocket连接、...
2. **服务器初始化**:在服务端,我们需要创建一个WebSocket服务器,这通常涉及选择一个WebSocket库,如Node.js中的ws库或Java中的Jetty WebSocket API。服务器需要监听特定的端口,等待客户端的连接请求。 3. **...
2. **服务器端实现**:WebSocket服务器通常使用特定的库或框架来创建,如Node.js的ws库,Java的Jetty或Tomcat,Python的WebSocket-Server等。这些库提供了处理WebSocket连接、接收和发送数据的方法。 3. **事件驱动...
2. **jetty-websocket.jar** 或 **tomcat-websocket.jar**:这两个是不同的Servlet容器(Jetty和Tomcat)提供的WebSocket实现。它们实现了WebSocket API,允许你在这些容器上部署WebSocket服务。 3. **slf4j-api....
3. **服务器端实现**:服务器端通常使用Node.js(例如使用Socket.IO库)、Java(如Jetty、Spring Boot的WebSocket支持)、Python(Tornado或Flask-SocketIO)等技术栈实现WebSocket服务。服务器端需要处理WebSocket...
在服务器端,开发者通常会使用像Jetty、Tomcat这样的服务器框架,它们支持WebSocket API。在客户端,JavaScript的WebSocket API提供了一种创建WebSocket连接、发送和接收数据的方法。 在实际使用WebSocket时,...
7. **服务器实现**:服务器端实现WebSocket通常涉及选择合适的库,如Node.js的`ws`库,Java的`Jetty`或`Tomcat`,Python的`Autobahn`等。这些库简化了协议处理和连接管理。 8. **客户端实现**:在浏览器环境中,...