客户端与服务器SSL双向认证(java-java):含源码

(一)实现技术:

JSSE(Java Security Socket Extension)

是Sun为了解决在Internet上的实现安全信息传输的解决方案。它实现了SSL和TSL(传输层安全)协议。在JSSE中包含了数据加密,服务器验证,消息完整性和客户端验证等技术。通过使用JSSE,可以在Client和Server之间通过TCP/IP协议安全地传输数据。

为了实现消息认证。

Server需要:

1)KeyStore: 其中保存服务端的私钥

2)Trust KeyStore:其中保存客户端的授权证书

Client需要:

1)KeyStore:其中保存客户端的私钥

2)Trust KeyStore:其中保存服务端的授权证书

(二)具体操作步骤:

使用Java自带的keytool命令,去生成这样信息文件:(C:\Program Files\Java\jdk1.6.0\bin里)

1)生成服务端私钥,并且导入到服务端KeyStore文件中

命令:keytool -genkey -alias serverkey -keystorekeyOfServer.keystore

文件生成:C:\Users\zwp\AppData\Local\VirtualStore\Program Files\Java\jdk1.6.0\bin(视情况而定)

2)根据私钥,导出服务端证书

命令:keytool -export -alias server -keystore keyOfServer.keystore  -file e:\server.crt

(注意点:-file server.cer直接执行时候,由于jdk装在c盘,为只读,需要指定其他路径即可(e:\server.cer))

3)生成client端密钥

keytool)私-genkey -alias clientkey -keystore keyOfClient.keystore

4)私钥导出客户端证书

keytool -export -alias clientkey -keystore keyOfClient.keystore -file e:\client.crt

5)将服务端证书,导入到客户端的Trust KeyStore中

keytool -genkey -alias clientkey -keystore keyOfClient.keystore

6)将客户端证书加到服务端信任列表

keytool -import -alias serverkey -file e:\client.crt -keystore trustOfServer.keystore

(三)目录结构

(四)注意地方

1.服务端:

2.客户端:

(五)运行结果

客户端:

Server Response: Hello

服务端:

=======Start Server !======

------Receive------

Client Test Running

======================================================================

源码下载:http://download.csdn.net/detail/beihaizuopeng/5290739

参考:http://blog.csdn.net/chw1989/article/details/7584995

java客户端带证书访问服务端_客户端与服务器SSL双向认证(客户端:java-服务端:java)...相关推荐

  1. java使用bks双向认证_客户端与服务器SSL双向认证(客户端:Android

    客户端与服务器SSL双向认证(客户端Android-服务端vc)-含源码(一)服务端已经生成了client.p12.server.p12.ca.p12:主要实现客户端过程(二)目录结构(三)客户端注 ...

  2. QtJava笔记-Qt与Java进行SSL双向认证(Qt服务端,Java客户端)

    程序运行截图如下: Qt作为服务端,Java作为客户端. 这里的服务端是用的p12证书,客户端使用的是jks. 具体的生成方式看以前的博文. QSSLServer.h #ifndef QSSLSERV ...

  3. HTTPS|SSL笔记-SSL双向认证失败(服务端证书信任库不含客户端证书)握手过程(含wireshark分析)

    这里我把服务端信任库添加了其他证书,不含客户端的证书,这时SSL认证失败报错如下.下面来分析下: 1. 首先是TCP三次握手,对应的包如下: 2. 握手成功后,客户端发送自己支持的加密套,和随机数给服 ...

  4. java代码实现证书生成客户端证书 实现ssl双向认证

    目的:实现web项目的ssl双向认证客户端证书代码生成. 使用openssl生成ca证书和服务端证书,当然也可以通过代码实现 1)创建CA私钥,创建目录ca openssl genrsa -out c ...

  5. 【ssl认证、证书】SSL双向认证java实战、keytool创建证书

    文章目录 概述 keytool示例 参考 相关文章: //-----------Java SSL begin---------------------- [ssl认证.证书]SSL双向认证和SSL单向 ...

  6. java实现 SSL双向认证

    http://avery-leo.iteye.com/blog/276096 实现技术: JSSE(Java Security Socket Extension) 是Sun为了解决在Internet上 ...

  7. JAVA实现发送HTTPS请求(SSL双向认证)

    一.项目背景 Java项目需要作为客户端发起HTTPS请求访问服务端,并且需要携带证书进行SSL双向认证,当前提供的证书相关文件有:ca.crt.ca.key.client.crt.client.ke ...

  8. 什么是SSL双向认证,与单向认证证书有什么区别?

    SSL/TLS 证书是用于用户浏览器和网站服务器之间的数据传输加密,实现互联网传输安全保护,大多数情况下指的是服务器证书.服务器证书是用于向浏览器客户端验证服务器,这种是属于单向认证的SSL证书.但是 ...

  9. java为属性提供访问器方法_关于继承:Java不继承访问器方法吗?

    给定一个扩展了实现接口" DeeDum"的类" Foo"的类" Bar" public interface DeeDum { public ...

最新文章

  1. MySQL的information_schema
  2. Eclipse IDE for Enterprise Java Developers和JDK8与apache-tomcat-8下载地址
  3. 云端计算模型的MATLAB仿真与分析
  4. html中选择样式,html中css三种常见的样式选择器 zz
  5. java循环单链表比较相等_java的循环单链表
  6. python中正则表达式的使用
  7. Webservice学习之——即时发布与定制发布
  8. 使用php 发送邮件,使用PHPMailer实现邮件发送代码分享
  9. C++ 整型所能表示的数据范围
  10. iOS学习-字符串的删除替换
  11. 开发:KTV评分系统实现总结
  12. 分享9个超好用的免费工具/软件/网站(一定有你要的)
  13. layui实现表格合并单元格,设置不同背景色
  14. 神舟战神笔记本怎么U盘装Win10系统教学
  15. 研究生的压力应对与健康心理期末考试答案
  16. 算法笔记_203:第四届蓝桥杯软件类决赛真题(C语言B组)
  17. python日历类_Python 时间日历类型
  18. 工作中如何做好技术积累『转载-保持学习的空杯心态』
  19. Sql server mssqlserver 服务无法启动
  20. 端口扫描 -- PortScan

热门文章

  1. js根据当前时间,获取本周一和本周日
  2. 产品经理与用户体验研究的关系
  3. windows7英文版变成中文版教程
  4. 在Excel中使用SQL语言
  5. python3 爬虫日记(三) 爬取堆糖动态加载网页
  6. 2022-2028年中国低温阀门行业市场发展现状及竞争格局预测报告
  7. 五金切断模具结构和设计注意事项
  8. Windows 组策略修改 之 初始化文件 %windir%\inf\defltbase.inf
  9. 神经了的ODE:Neural Ordinary Differential Equations
  10. Ubuntu下包含2种远程桌面的方式:VINO-Server以及VNC Server