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

客户端与服务器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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值