netty框架下集成ssl的tcp通信案例
阅读前提条件具备:
(1)了解SSL协议详解:https://cshihong.github.io/2019/05/09/SSL%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3/
(2)netty基础通信框架了解和搭建
一、证书生成
首先先生成服务端的证书:
D:\doc\RTK\demo\security\server>keytool -genkey -alias securechat -keysize 2048 -validity 365 -keyalg RSA -dname "CN=localhost" -keypass sNetty -storepass sNetty -keystore rtkServer.jks
D:\doc\RTK\demo\security\server>keytool -export -alias secureRtk -keystore rtkServer.jks -storepass sNetty -file rtkServer.cer
存储在文件 <rtkServer.cer> 中的证书
其次生成客户端的证书:
D:\doc\RTK\demo\security\client>keytool -genkey -alias smcc -keysize 2048 -validity 365 -keyalg RSA -dname "CN=localhost" -keypass cNetty -storepass cNetty -keystore rtkServer.jks
D:\doc\RTK\demo\security\client>keytool -import -trustcacerts -alias securechat -file ../server\rtkServer.cer -storepass cNetty -keystore rtkServer.jks

二、netty服务端集成ssl

KeyStore keyStore = KeyStore.getInstance("JKS");// 定义一个KeyStore用来存储server的秘钥文件
keyStore.load(new FileInputStream(服务端证书文件), "sNetty".toCharArray());// 载入server端使用的证书,当然要输入要打开加密文件的password
三、netty客户端集成ssl

KeyStore keyStore = KeyStore.getInstance("JKS");// 定义一个KeyStore用来存储server信任的证书文件
keyStore.load(new FileInputStream(客户端证书文件), "cNetty".toCharArray());// 载入server端信任的证书文件,当然也要输入password
四:参考
(1)tcp ssl java_SSL的TCP通信:https://blog.csdn.net/weixin_29284201/article/details/114073494
(2)netty集成ssl:https://www.cnblogs.com/zhjh256/p/6488668.html

浙公网安备 33010602011771号