加为好友
发送私信
在线聊天
xqf_1999
等级:
可用分等级:长工
总技术分:20
总技术分排名:175595
发表于:2008-03-19 17:11:17 1 楼 得分:0
自已搞定了!!! 没人帮我,就算了!! 我把方法写下来,我后来的初学者借簦一下吧!! 我是在一个人的blog里学的例子,但他的没有用SSL,所以我又搜了点东西,再加上项目老大的指点完成。 例子在我的blog里(http://blog.csdn.net/xqf_1999/archive/2008/03/12/2172879.aspx),这是转载的,不是我写的。 下边是加上SSL, 《————————————————————————————————————————》 使用SSL/HTTPS协议来传输 Web服务也可以使用SSL作为传输协议。虽然JAX-RPC并没有强制规定是否使用SSL协议,但在tomcat 下使用HTTPS协议。 1、使用JDK自带的工具创建密匙库和信任库。 1)通过使用以下的命令来创建服务器端的密匙库: keytool -genkey -alias Server -keystore server.keystore -keyalg RSA 输入keystore密码: changeit 您的名字与姓氏是什么? [Unknown]: Server 您的组织单位名称是什么? [Unknown]: ec 您的组织名称是什么? [Unknown]: ec 您所在的城市或区域名称是什么? [Unknown]: beijing 您所在的州或省份名称是什么? [Unknown]: beijing 该单位的两字母国家代码是什么 [Unknown]: CN CN=Server, OU=ec, O=ec, L=beijing, ST=beijing, C=CN 正确吗? [否]: y 输入 <Server>的主密码 (如果和 keystore 密码相同,按回车): 以上命令执行完成后,将获得一个名为server.keystore的密匙库。 2)生成客户端的信任库。首先输出RSA证书: keytool -export -alias Server -file test_axis.cer -storepass changeit -keystore server.keystore 然后把RSA证书输入到一个新的信任库文件中。这个信任库被客户端使用,被用来验证服务器端的身份。 keytool -import -file test_axis.cer -storepass changeit -keystore client.truststore -alias serverkey -noprompt 以上命令执行完成后,将获得一个名为client.truststore的信任库。 3)同理生成客户端的密匙库client.keystore和服务器端的信任库server.truststore.方便起见给出.bat文件 gen-cer-store.bat内容如下: set SERVER_DN="CN=Server, OU=ec, O=ec, L=BEIJINGC, S=BEIJING, C=CN" set CLIENT_DN="CN=Client, OU=ec, O=ec, L=BEIJING, S=BEIJING, C=CN" set KS_PASS=-storepass changeit set KEYINFO=-keyalg RSA keytool -genkey -alias Server -dname %SERVER_DN% %KS_PASS% -keystore server.keystore %KEYINFO% -keypass changeit keytool -export -alias Server -file test_axis.cer %KS_PASS% -keystore server.keystore keytool -import -file test_axis.cer %KS_PASS% -keystore client.truststore -alias serverkey -noprompt keytool -genkey -alias Client -dname %CLIENT_DN% %KS_PASS% -keystore client.keystore %KEYINFO% -keypass changeit keytool -export -alias Client -file test_axis.cer %KS_PASS% -keystore client.keystore keytool -import -file test_axis.cer %KS_PASS% -keystore server.truststore -alias clientkey -noprompt 好的,现在我们就有了四个文件:server.keystore,server.truststore,client.keystore,client.truststore 2、更改Tomcat的配置文件(server.xml),增加以下部署描述符:(其实里面有,只是被注释掉了) <Connector port="8443" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="true" keystoreFile="f:\server.keystore" keystorePass="changeit" truststoreFile="f:\server.truststore" truststorePass="changeit" sslProtocol="TLS" /> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 然后在上边例子的代码中有一句改成: private static EndpointReference targetEPR=new EndpointReference ("https://localhost:8443/axis2/services/HelloWorld"); 再在main()里加上: System.setProperty("javax.net.ssl.trustStore", "D:\\Tomcat5.5\\client.truststore");////这是你的信任密匙库的位置。 System.setProperty("javax.net.ssl.trustStorePassword","changeit");/////密码 运行这个例子就OK了!!! 我想就应该是这样了吧!! 不对的地方欢迎拍板砖!!!
修改
删除
举报
引用
回复