在mina中实现TSL/SSL双向认证连接(2)

上回书说到...书接上回,现在介绍第二种实现方式:Server端和Client端各自拥有自签名的私有密钥证书,并且互相交换公钥,通过对方公钥互相信认对方证书。

1.创建Server端KeyStore文件serverKeys.jks,包含一个用于服务器的证书 :
[quote]keytool -genkey -alias server -keysize 1024 -validity 3650 -keyalg RSA -dname "CN=sundoctor.com, OU=Developer,O=Techstar, L=Beijing, S=Beijing, C=CH" -keypass 123456 -storepass 123456 -keystore serverKeys.jks [/quote]
2.导出服务端公钥证书
[quote]keytool -export -alias server -keystore serverKeys.jks -file server.cer -storepass 123456[/quote]
3.创建Client端KeyStore文件clientKeys.jks,分别包含用于虚构的通信者 Alice 和 Bob 的证书 :
[quote]keytool -genkey -alias alice -keysize 1024 -validity 3650 -keyalg RSA -dname "CN=Aclie, OU=Developer,O=Techstar, L=Beijing, S=Beijing, C=CH" -keypass 123456 -storepass 123456 -keystore clientKeys.jks

keytool -genkey -alias bob -keysize 1024 -validity 3650 -keyalg RSA -dname "CN=Bob, OU=Developer,O=Techstar, L=Beijing, S=Beijing, C=CH" -keypass 123456 -storepass 123456 -keystore clientKeys.jks[/quote]
4.导出客户端 Alice和 Bob公钥证书
[quote]keytool -export -alias alice -keystore clientKeys.jks -file alice.cer -storepass 123456

keytool -export -alias bob -keystore clientKeys.jks -file bob.cer -storepass 123456[/quote]
5.创建服务端KeyStore文件serverTrust.jks并导入客户端 Alice和 Bob公钥证书
[quote]keytool -import -alias alice -keystore serverTrust.jks -file alice.cer -keypass 123456 -storepass 123456

keytool -import -alias bob -keystore serverTrust.jks -file bob.cer -keypass 123456 -storepass 123456[/quote]
6.创建客户端KeyStore文件clientTurst.jks并导入服务端公钥证书
[quote]keytool -import -alias server -keystore clientTrust.jks -file server.cer -keypass 123456 -storepass 123456[/quote]

这样我们就得clientKeys.jks、clientTrust.jks、serverKeys.jks、serverTrust.jks四个KeyStore文件。

这里与第一种方式不同的地方就是不再需要BogusTrustManagerFactory类,初始化客户端和服务端的SSLContext时TrustManager分别采用 clientTrust.jks和serverTrust.jks,KeyManager和第一种方式一样。
protected static TrustManager[] getTrustManagers(String trustfile,String pasword) throws IOException, GeneralSecurityException {
// First, get the default TrustManagerFactory.
TrustManagerFactory tmFact = TrustManagerFactory.getInstance(TRUST_MANAGER_FACTORY_ALGORITHM);

// Next, set up the TrustStore to use. We need to load the file into
// a KeyStore instance.
InputStream in = BogusSslContextFactory.class.getResourceAsStream(trustfile);
KeyStore ks = KeyStore.getInstance("jks");
ks.load(in, pasword.toCharArray());
in.close();

// Now we initialise the TrustManagerFactory with this KeyStore
tmFact.init(ks);

// And now get the TrustManagers
TrustManager[] tms = tmFact.getTrustManagers();
return tms;
}
mina 双向openssl 在mina中兑现TSL/SSL双向认证连接  http://www.myexception.cn/software-architecture-design/834196.html 在mina中实现SSL双向认证证书生成操作手册 http://wenku.baidu.com/link?url=sKQcaOr3JjOAGz5abr6iJh86eVYuGwH7P_2uTX--1i5w-g0nmp 阅读详情

相关推荐

Apache Mina定长报文传输与SSL加密实战

Apache Mina 是一个基于 Java 的高性能网络通信框架,旨在简化 TCP/UDP 协议的开发流程。它通过统一的 API 抽象底层网络操作,使开发者能够专注于业务逻辑的实现,而非繁琐的网络通信细节。本章将从 Mina 的基本架构入手,介绍其核心组件如IoServiceIoHandler和的作用与协作方式。同时,我们还将探讨 Mina 在高并发网络通信中的典型应用场景,如即时通讯、远程调用、协议解析等,帮助读者建立对网络框架的整体认知。

weixin_36289813的博客 555

在mina中实现TSL/SSL双向认证连接(1)

本文需要读者对mina和SSl原理有一定的了解,所以本文中对mina和SSL的原理,不做详细的介绍。 TSL/SSL双向认证连接:Server端和Client端通信,需要进行授权和身份的验证,即Client只能接受Server的消息,Server只能接受Client的消息。这样就可以在客户机和服务器之间通过TCP/IP协议安全地传输数据。 在mina中实现TSL/SSL双向认证连接,本...

曾文锋开发日志 949

基于 MINA 的 TLS/SSL NIO Socket 实现(二)

NULL 博文链接:https://sariel.iteye.com/blog/470383

利用mina框架进行ssl双向认证链接

再上一篇中我已将创建好了证书,现在开始进行测试创建的证书有没有用,先创建一个maven项目目录结构如下 我们这里是进行的双向测试,如果想进行单项测试,也就是服务器端不验证客户端的身份(关于ssl的原理可以自行百度了解)等会再说,改一个配置就行. 先引入pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs...

oneTreeTallTall 2419

JAVA实现的SSL/TLS双向认证源代码

压缩包里有客户端源码和服务器端源码,支持TCP的双向认证,也支持WEBSOCKET的双向认证,内附测试 wss的测试例子, 需要生成PKCS12的证书,导入浏览器才可以测试。

YOLOv8验证的命令以及计算coco指标

好久不看代码,都不知道怎么验证的了,来记录一下。1、计算coco指标。

毕竟是Shy哥 1479

MINA、Netty、Twisted一起学(十一):SSL/TLS

什么是SSL/TLS不使用SSL/TLS的网络通信,一般都是明文传输,网络传输内容在传输过程中很容易被窃听甚至篡改,非常不安全。SSL/TLS协议就是为了解决这些安全问题而设计的。SSL/TLS协议位于TCP/IP协议之上,各个应用层协议之下,使网络传输的内容通过加密算法加密,并且只有服务器和客户端可以加密解密,中间人即使抓到数据包也无法解密获取传输的内容,从而避免安全问题。例如广泛使用的HTTPS

叉叉哥的BLOG 2153

海康工业相机排雷笔记02-像素格式解析

工业相机使用过程记录 02-像素格式解析 通过将相机输出图像裸数据raw格式直接存图查看 一、黑白/Mono 直接使用相机测试图像存图: 图像中各部分灰度分别为:0、36、73、109、146、182、219、255,以灰度73列为例 (1)Mono 8 该列图像数据为十六进制49,十进制为73,那么Mono 8就是每个像素点占8bit,依次排列。 (2)Mono 10 该列图像数据为十六进制2401,由于相机均为小端数据,实际数据应解析为0124,十进制为292=73*4,那么Mono 10格式为每

yonghuming_66的博客 8355

Mina SSL Filter安全加密过滤器相关知识介绍

原文地址:Mina SSLFilter(Apahce Mina user guide Chapter11 SSL Filter) SslFilter过滤器是负责管理数据的加密和解密通过安全连接。每当你需要建立一个安全连接,或将现有的连接使它安全,你必须添加SslFilter过滤器链。 任何会话可以修改它的信息过滤器链,它允许使用协议像startTLS打开连接。 请注意,虽然这个名字包括S

纸上得来终觉浅,绝知此事要躬行 5771

OpenCLI入门:让任何网站变成你的命令行工具(超详细版)

最有用的工具,往往是最简单的。 opencli就是这样。 它不会帮你写代码,不会帮你做决策,但它能把200+个平台装进你的命令行。 让你用最简单的方式,获取最丰富的数据。

weixin_66295112的博客 2088

在WPS/Office中免费使用AI,快速提升办公效率!​

《免费解锁WPS/Office AI办公神器教程》摘要: 本教程详解如何通过第三方插件OfficeAI免费实现WPS/Office智能办公,突破官方付费限制。从安全设置到安装配置,手把手教学,涵盖文档生成、PPT美化、Excel图表等核心功能。关键优势包括零成本、全场景支持及云端/本地双模式切换,并附常见问题解决方案。注意需使用WPS 2024+版本,安装时需临时关闭杀毒软件。教程强调工具来源合法性,建议商用购买正版授权。(149字)

杜哥无敌的博客 2302

在mina中实现TSL/SSL双向认证连接(3)

现在介绍第三种实现方式:Server端和Client端各自拥有可信认的第三方认证机构(CA)签名私有密钥证书,通过CA互相信认对方证书。 在第二种实现方式中,使用keytool生成的数字证书只能是自签名的。谓自签名就是指证书只能保证自己是完整的,没有经过非法修改的。但是无法保证这个证书是属于谁的。这种验证有一个缺点:对于每一个要链接的服务器,都要保存一个证书的验证副本。而且一旦服务器更换证书,所...

曾文锋开发日志 383

会计-合并-5- 增资、处置交易在合报与个报会计处理

摘要:本文系统梳理了股权投资会计处理的四种情形:从交易性金融资产转为权益法或成本法、权益法转成本法、权益法增持。核心原则是区分个报与合报处理,重点关注原投资公允/账面价值的计量差异及损益确认逻辑。对不丧失控制权的股权处置,个报确认投资收益,合报调整资本公积;丧失控制权时,个报需追溯调整权益法核算,合报计算综合投资收益。一揽子交易的特殊处理强调将过渡性差额暂记其他综合收益,最终丧失控制权时转入当期损益。文末通过典型案例演示了不同情境下的具体计算方法。

qq_34047402的博客 466

玩玩数字证书

最近在学校做了个小项目, 计划使用SSL实现服务器与客户端的双向认证,却因各种理由、借口而废弃。在做这个小项目之前,我自以为只要了解过相关知识,到做起项目来就能较快的掌握那些知识了,但我想我现在之只能说是听说过SSL以及数字证书的相关绯闻罢了。真的是不做不知道,做了吓一跳。在真正用代码实现自己的猜想之前,切忌说自己有多大多大的把握。 原计划使用Mina实现TSL/SSL双向认证,所以就上网搜...

erfgsieruhiu的专栏 200

HRNet训练自己的分类数据

1.搭建环境 为了防止和服务器上的环境冲突,这里利用conda搭建环境。 Install PyTorch=0.4.1 following theofficial instructions git clonehttps://github.com/HRNet/HRNet-Image-Classification Install dependencies: pip install -r requirements.txt ...

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 5847

在iPad上使用Python进行编程

如果你拥有一台iPad,并且想在上面编写和运行Python代码,你会发现iPad提供了一些适用的工具和应用程序来满足你的需求。安装一个Python解释器应用程序,编写和运行Python代码,使用第三方库和模块,以及存储和共享代码,这些步骤将帮助你在iPad上进行Python编程。要在iPad上运行Python代码,首先需要安装一个Python解释器。这些应用程序提供了一个交互式的开发环境,允许你编写、编辑和运行Python代码。一旦你安装了Python解释器应用程序,你可以开始编写Python代码了。

2301_79366435的博客 4624

Apache Mina - SSL配置

[url=http://zjumty.iteye.com/blog/1884465]Apache MINA文档系列[/url] [size=x-large]Apache Mina - SSL配置[/size] 本文中我们看一下如何为一个简单的客户端/服务器应用程序配置安全套接字(SSL)。 我们需要一下3个步骤: 创建SSLContext 服务器部分 客户端部分 [si...

zjumty 494

把 NAST 变成你的遥控器:用 ABAP 程序精确触发与处理 Output Type

摘要 SAP中的Message Control机制通过NAST表记录输出状态,支持自动触发打印、邮件等操作。关键步骤包括: 构造NAST记录:定义输出类型、介质、处理状态等参数 调用处理函数:使用RV_MESSAGE_UPDATE_SINGLE更新表,通过WFMC_MESSAGES_PROCESS执行输出 典型应用场景: 单据补发(如PO邮件重发) 外部系统集成触发输出 故障恢复处理积压消息 注意事项: 需提交事务确保更新生效 区分S/4HANA新旧输出体系 正确处理派发时间(VSZTP)和状态(VSTAT

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 246

《Apache MINA 2.0 用户指南》第十一章:SSL 过滤器

本章对 SSL 过滤器进行探讨。但具体内容有待官方完善中。

Defonds 的专栏 4480

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Mina 单双向认证

生成服务器端密钥 keytool -genkey -alias serverkey -keystore kserver.keystore 导出服务器端证书 keytool -export -alias serverkey -keystore kserver.keystore -file server.crt 将服务器端证书保存到客户端受信密钥中 keytool -import

IT人生 1732

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Mina 在 Spring 中配置同时支持 SSL 加密连接和非 SSL 连接

Mina 在 Spring 中配置同时支持 SSL 加密连接和非 SSL 连接

太阳火神的美丽人生 2542

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Apache Mina的SSL连接API

在网上找了N久也没找到有关Mina建立SSL安全连接的细节部分,连官方网站用户手册都说.......即将到来.......实在是不耐烦了,就自己去看了一下源代码,翻译了一下,翻译的比较渣。。。不过能看懂就行了!希望能够造福社会。 Mina安全连接:org.apache.mina.filter.ssl包API:    这是一个提供SSL功能的 IoFilter类实现。

cuiyuan199101的专栏 2545

Mina的ssl加密

前面写的Mina的示例,都是可以通过telnet登录的,并且可以相互交互。 现在采用ssl加密的方式,对建立连接时,进行加密连接。这样,双方只有统一的加密,然后才可以连接。 密钥的生成之前有说过,里面有引用站内某个程序员的博文,这里用的代码也是出自他手。 package com.example.mina.ssl; import java.io.File; import java....

weixin_34194702的博客 397

Mina的大量连接问题

最近用到了Mina,发现在CentOS6.2 上,当接收到400个来自客户端的TCP连接的时候,新的TCP的连接能建立成功 但是新建立的TCP连接收到的数据,不能再抛给应用层,而一直堵在缓冲区,如下 使用命令:netstat -nat |grep 65534 因为TCP的三次握手是操作系统控制的,所以新的TCP连接能够建立成功。 为什么会这样呢?当找到了真正的原因,只能感叹,作为一

偷得浮生半日闲 6095
上一篇: 在mina中实现TSL/SSL双向认证连接(1)
下一篇: 在mina中实现TSL/SSL双向认证连接(3)
sundoctor
博客等级 码龄23年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值