首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

配备https双向认证,以及用soapui调试

2012-07-15 
配置https双向认证,以及用soapui调试一、环境信息服务端启动jboss-4.2.3,IP是10.78.125.111。启动以后在本地

配置https双向认证,以及用soapui调试
一、环境信息

服务端启动jboss-4.2.3,IP是10.78.125.111。启动以后在本地调用,本地的IP是10.78.125.222

二、单向认证

单向认证比较简单,用以下命令:

keytool -genkey -alias 111 -keyalg RSA -keystore 111.keystore -validity 3650

名字和姓氏要填域名或者IP名:10.78.125.111。其他可以随便填

这步操作以后,得到111.keystore

将111.keystore放到jboss以下目录:%JBOSS_HOME%\server\default\conf\下,然后配置%JBOSS_HOME%\server\default\deploy\jboss-web.deployer\server.xml文件


这样单向认证就配置好了,它不要求验证客户端信息,也就是所有客户端都可以访问到

如果是用浏览器访问的话,会提示“此网站的安全证书有问题,是否继续访问”。因为这个证书是用最简单的办法自己做的,没有经过权威CA的签署,所以一般浏览器是不承认其安全性的

如果是用代码访问的话,则还需要额外的步骤

首先用以下命令:

keytool -export -alias 111 -file 111.cer -keystore 111.keystore

得到一个111.cer,然后把111.cer给到客户端,客户端用以下命令:

keytool -import -alias 111 -file 111.cer -keystore server.keystore

得到server.keystore,把这个文件作为客户端代码的truststore,才能正常访问到。可以理解为因为是用代码来访问服务端,没有用户手工确认的过程,所以需要把证书加进来进行确认

三、双向认证

双向认证就比较复杂,因为需要客户端的校验,也就是说不是随便什么客户端都能访问到的

那本地想要调用到服务端,就也需要做证书,同样先用这个命令:

keytool -genkey -alias 222 -keyalg RSA -keystore 222.keystore -validity 3650

得到222.keystore

然后:

keytool -export -alias 222 -file 222.cer -keystore 222.keystore

得到222.cer,把222.cer发给服务端,服务端用以下命令:

keytool -import -alias 222 -file 222.cer -keystore client.keystore

得到了client.keystore,这里面就包含了10.78.125.222的证书信息,可以用以下命令查看:

keytool -list -v -keystore client.keystore

然后将client.keystore放到%JBOSS_HOME%\server\default\conf\下,再配置%JBOSS_HOME%\server\default\deploy\jboss-web.deployer\server.xml文件

这样就配置好双向认证的服务端了

在客户端用代码调用服务端的话,就要把server.keystore作为truststore,把222.keystore作为keystore,如果是用cxf的话,配置文件大概是这样:

如果是用soupui或者浏览器来访问,在下面说

四、用SoapUI来调用

用SoapUI来调用的话,如果是单向认证,则不需要额外的操作,可以直接调用。如果是双向认证,需要导入本地证书,也就是222.keystore

选择File-->Preferences-->SSL Settings,导入222.keystore,输入密码即可

五、用浏览器来访问

如果是单向认证,不需要导入证书也可以访问,只是会提示“此网站的安全证书有问题,是否继续访问”。

如果是双向认证,需要导入证书才能访问,否则会提示“SSL节点无法核实您的证书,错误码: ssl_error_bad_cert_alert”。

不过刚才做的cer证书好像是无法导入的,不知道为什么

热点排行