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

posted @ 2021-03-03 17:18  Spirited-away  阅读(473)  评论(0)    收藏  举报