From 0632a02beb78705dc93b760c7bfa86ecedacb970 Mon Sep 17 00:00:00 2001 From: shikeying <pxzsky@163.com> Date: 星期四, 22 二月 2024 11:10:34 +0800 Subject: [PATCH] 增加注释 --- walker-tcp/src/main/java/com/walker/tcp/netty/WebSocketServerInitializer.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-) diff --git a/walker-tcp/src/main/java/com/walker/tcp/netty/WebSocketServerInitializer.java b/walker-tcp/src/main/java/com/walker/tcp/netty/WebSocketServerInitializer.java index 2700971..e97e4b4 100644 --- a/walker-tcp/src/main/java/com/walker/tcp/netty/WebSocketServerInitializer.java +++ b/walker-tcp/src/main/java/com/walker/tcp/netty/WebSocketServerInitializer.java @@ -6,7 +6,15 @@ import io.netty.handler.codec.http.HttpServerCodec; import io.netty.handler.logging.LogLevel; import io.netty.handler.logging.LoggingHandler; +import io.netty.handler.ssl.SslHandler; import io.netty.handler.stream.ChunkedWriteHandler; + +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLEngine; +import java.io.FileInputStream; +import java.io.InputStream; +import java.security.KeyStore; public class WebSocketServerInitializer extends DefaultServerInitializer { @@ -38,4 +46,40 @@ pipeline.addLast("handler", this.getHandler()); } + /** + * 鍒涘缓鏀寔wss鍙潬杩炴帴鐨勯�氫俊銆傛殏鏃朵笉浣跨敤銆� + * <pre> + * 1) 涓嶈繃鐩墠鎯呭喌鐪嬶紝涓�鑸槸鍦� nginx 绔唬鐞嗚缃嵆鍙紝涓�鑸笉蹇呭湪绋嬪簭涓敮鎸� + * 2) 纭疄闇�瑕佸湪绋嬪簭涓敮鎸侊紝闇�瑕侀厤缃瘉涔︼紝杩欏湪闆嗙兢鐜涓嬪緢闅剧淮鎶ゃ�� + * </pre> + * @param pipeline + * @param password + * @throws Exception + * @date 2024-01-31 + */ + private void createSSLHandler(ChannelPipeline pipeline, String password) throws Exception{ + KeyStore ks = KeyStore.getInstance("JKS"); + InputStream ksInputStream = new FileInputStream("/Users/liukun/ca/demo.liukun.com.keystore.jks"); + ks.load(ksInputStream, password.toCharArray()); + KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + kmf.init(ks, password.toCharArray()); + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(kmf.getKeyManagers(), null, null); + SSLEngine sslEngine = sslContext.createSSLEngine(); + sslEngine.setUseClientMode(false); + sslEngine.setNeedClientAuth(false); + // 闇�鎶奡slHandler娣诲姞鍦ㄧ涓�浣� + pipeline.addFirst("ssl", new SslHandler(sslEngine)); + } + + /** + * 鏄惁鍏佽浣跨敤锛歸ss鍙潬閫氶亾 + * @param enableSSL + * @date 2024-01-31 + */ + public void setEnableSSL(boolean enableSSL) { + this.enableSSL = enableSSL; + } + + private boolean enableSSL = false; } -- Gitblit v1.9.1