使用java进行双向认证的ssl链接及使用openssl生产证书链附源程序(转)

使用java进行双向认证的ssl链接及使用openssl生产证书链附源程序(转)

ID:12490754

大小:84.00 KB

页数:8页

时间:2018-07-17

使用java进行双向认证的ssl链接及使用openssl生产证书链附源程序(转)_第1页
使用java进行双向认证的ssl链接及使用openssl生产证书链附源程序(转)_第2页
使用java进行双向认证的ssl链接及使用openssl生产证书链附源程序(转)_第3页
使用java进行双向认证的ssl链接及使用openssl生产证书链附源程序(转)_第4页
使用java进行双向认证的ssl链接及使用openssl生产证书链附源程序(转)_第5页
资源描述:

《使用java进行双向认证的ssl链接及使用openssl生产证书链附源程序(转)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、这几天被SSL和证书搞得头昏脑胀的。不过还好终于把这个SSL搞定了。用SSL进行双向身份验证意思就是在客户机连接服务器时,链接双方都要对彼此的数字证书进行验证,保证这是经过授权的才能够连接(我们链接一般的SSL时采用的是单向验证,客户机只验证服务器的证书,服务器不验证客户机的证书。而连接网上银行时使用的U盾就是用来存储进行双向验证所需要的客户端证书的)。JDK里面内置了一个数字证书生产工具:keytool。但是这个工具只能生成自签名的数字证书。所谓自签名就是指证书只能保证自己是完整的,没有经过非法修改的。但是无法保证这个证书是属于谁的。其实用这种自签名的证书也是可以进行双向验证

2、的(用keytool生成的自签名证书进行双向验证请看这里,向这位仁兄致意~:http://www.blogjava.net/stone2083/archive/2007/12/20/169015.html),但是这种验证有一个缺点:对于每一个要链接的服务器,都要保存一个证书的验证副本。而且一旦服务器更换证书,所有客户端就需要重新部署这些副本。对于比较大型的应用来说,这一点是不可接受的。所以就需要证书链进行双向认证。证书链是指对证书的签名又一个预先部署的,众所周知的签名方签名完成,这样每次需要验证证书时只要用这个公用的签名方的公钥进行验证就可以了。比如我们使用的浏览器就保存了几个

3、常用的CA_ROOT。每次连接到网站时只要这个网站的证书是经过这些CA_ROOT签名过的。就可以通过验证了。但是这些共用的CA_ROOT的服务不是免费的。而且价格不菲。所以我们有必要自己生成一个CA_ROOT的密钥对,然后部署应用时,只要把这个CA_ROOT的私钥部署在所有节点就可以完成验证了。要进行CA_ROOT的生成,需要OpenSSL(http://www.openssl.org/)。你也可以在http://www.slproweb.com/products/Win32OpenSSL.html找到Windows下的版本安装好OpenSSL以后就可以生成证书链了,我写了一个

4、BAT解决这些东西:@echooffsetCsetPWD_SERVER_KS=serverkssetPWD_SERVER_KEY=serverkeysetPWD_CLIENT_KS=clientkssetPWD_CLIENT_KEY=clientkeyifnotexistca.key(  echoGeneratingacarootkeyfile...  opensslreq-new-x509-keyoutca.key-outca.crt-config%CONFIG%)else(  echoca.keyalreadyexists...)ifnotexistserver.keyst

5、ore(  echoGeneratingserver'sprivatekey...  keytool-genkey-aliaslogon_server_private_key-validity365-keyalgRSA-keysize1024-keystoreserver.keystore-keypass%PWD_SERVER_KEY%-storepass%PWD_SERVER_KS%)else(  echoserver.keystorealreadyexits...)ifnotexistclient.keystore(  echoGeneratingclient'spriva

6、tekey...  keytool-genkey-aliasipclient_private_key    -validity365-keyalgRSA-keysize1024-keystoreclient.keystore-keypass%PWD_CLIENT_KEY%-storepass%PWD_CLIENT_KS%)else(  echoclient.keystorealreadyexits...)echo========Finishedkeygeneration=========ifnotexistlogon_server_private_key.csr(  echoG

7、eneratingserver'ssingaturerequestfile...  keytool-certreq-aliaslogon_server_private_key-sigalgMD5withRSA-filelogon_server_private_key.csr-keypass%PWD_SERVER_KEY%-storepass%PWD_SERVER_KS%-keystoreserver.keystore)else(  echologon_server_private_key.c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。