标签:
有关SSL的原理和介绍在网上已经有不少,对于Java下使用keytool生成证书,配置SSL通信的教程也非常多。但如果我们不能够亲自动手做一个SSL Sever和SSL Client,可能就永远也不能深入地理解Java环境下,SSL的通信是如何实现的。对SSL中的各种概念的认识也可能会仅限于可以使用的程度。本文通过构造一个简单的SSL Server和SSL Client来讲解Java环境下SSL的通信原理。总结:
客户端和服务端通过ssl通信时,有两种方式:
1.服务端生成了一个keystore文件,这个文件中包含了自己的私钥和公钥,服务端以这个jks文件启动后。客户端可以也使用这个jks访问,就可以访问成功。
2.另一个方法是服务端生成了一个jks文件,然后用export选项导出cer文件,这个cer只包含公钥。客户端也生成一个jks文件,然后将服务端的cer以-trustcacerts导入刚才客户端生成的jks文件中,客户端以这个jks文件访问服务端,就是可以的。如果客户端以未导入服务端cer的jks访问刚才的服务器会报错,sslconnection shutdown。
参考资料:标签:
原文地址:http://blog.csdn.net/zbuger/article/details/51695582