配置JAVA SSL/TLS 之websocket wss交互式认证

我下面生成的  .keystore文件也可以用   .jks  后缀代替,  jks 的意思就是 java   keystore,   另外需要知道 .cer文件是二进制的,   .pem文件是文本文件, 本质都是一样的, 他们可以互相转换。   java 语言操作的是二进制的文件, 其他的一些脚本语言, 可能操作的是PEM格式的文件。看具体情况吧。


创建服务端keystore
keytool -genkey -v -alias server_ks -keysize 2048 -keyalg RSA -dname "CN=www.abc.com" -keypass 123456 -storepass 123456 -keystore ./server.keystore -validity 36500

创建客户端keystore
keytool -genkey -v -alias client_ks -keysize 2048 -keyalg RSA -dname "CN=www.abc.com" -keypass 123456 -storepass 123456 -keystore ./client.keystore -validity 36500

导出服务端证书
keytool -export -v -alias server_ks -keystore ./server.keystore -storepass 123456 -file ./server.cer  

导出客户端证书
keytool -export -v -alias client_ks -keystore ./client.keystore -storepass 123456 -file ./client.cer


将服务端证书导入到客户端trustkeystroe
keytool -import -v -alias xxx -keystore ./clientTrust.jks -storepass 123456 -file ./server.cer  

将客户端证书导入到服务端trustkeystroe
keytool -import -v -alias xxx -keystore ./serverTrust.jks -storepass 123456 -file ./client.cer  


把二进制的CER文件转换为文本的PEM文件
openssl x509 -in ./xxx.cer -inform der -outform pem -out ./xxx.pem

把文本的PEM文件转换为二进制的CER文件
openssl x509 -in ./xxx.pem -inform pem -outform der -out ./xxx.cer



jks文件(java key store文件)转化为浏览器可以加载的PKCS12格式
keytool -importkeystore -srckeystore ./client.keystore -destkeystore ./browser.p12 -srcstoretype JKS -deststoretype PKCS12 -keypass 123456 -storepass 123456


storetype 类型有  JKS, JCEKS, PKCS12, PKCS11 and DKS


下面的命令查看证书是否已经添加到信任列表中了

keytool -list -keystore  ./serverTrust.jks








Netty WebSocket Timer Service















Server response message







源码在我的下载资源里有, 包括客户端源码和服务器端源码。  通过java客户端TCP的双向认证收发, 通过浏览器测试的websocket双向认证收发都测试通过。



你可能感兴趣的:(配置JAVA SSL/TLS 之websocket wss交互式认证)