分享

Tomcat+Axis2 WebService配置SSL单向验证

 software1 2011-10-19

为了使客户端能够通过https 访问webService,需要给tomcat和axis2配置ssl.分别在服务器端和客户端做配置:

服务器端:

1.         在服务器端生成证书

建立文件夹c:/crt,在dos窗口中执行以下命令。

  1. cd c:/ crt  
  2.   
  3. keytool -genkey -keyalg RSA -dname "cn=Jim,ou=sango,o=none,l=china,st=beijing,c=us" -alias server -keypass Aa1234 -keystore server.jks -storepass Aa1234 -validity 3650  

c:/crt 文件夹下生成证书:server.jks

keytool是JDK自带的证书管理命令。

2.         配置TomcatSSL

编辑C:/apache-tomcat-6.0.29/conf/server.xml, 添加以下代码:

  1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"    
  2.   
  3.     maxThreads="150" scheme="https" secure="true"    
  4.   
  5.     clientAuth="false" sslProtocol="TLS"    
  6.   
  7.     keystoreFile="C:/crt/server.jks" keystorePass="Aa1234"/>    
  

keystoreFile是证书的位置,keystorePass是生成证书时指定的密码。

验证配置:https://localhost:8443/

3.         配置Axis2SSL

编辑C:/apache-tomcat-6.0.29/webapps/axis2/WEB-INF/web.xml,添加以下代码: 

  

  1. <transportReceiver name="https"   class="org.apache.axis2.transport.http.SimpleHTTPServer">  
  2.   
  3.    <parameter name="port" locked="false">8443</parameter>  
  4.   
  5. </transportReceiver>  
  6.   
  7. <transportSender name="https"  
  8.   
  9. class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">  
  10.   
  11.    <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>  
  12.   
  13.    <parameter name="Transfer-Encoding">chunked</parameter>  
  14.   
  15. </transportSender>  

客户端,这里所说的客户端不是浏览器,而是程序中调用WebService的程序

1.         导入服务器端的证书

在客户端建立文件夹c:/crt,把服务器端生成的证书server.jks拷贝到c:/crt,dos窗口中分别执行以下命令。

  1. cd c:/ crt  
  2. keytool -export -alias server -keystore server.jks -file server.cer  
  3. cd C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/  
  4. keytool -import -trustcacerts -alias server -keystore cacerts -file c:/crt/server.cer -storepass changeit  
  

 上个命令中的C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts 必须指向运行时使用的JRE的对应文件夹。

2.         在程序中添加代码指定证书位置,xxxxFactory类的getXXXStub方法中调用客户端的代码之前加上:

  1. System.setProperty("javax.net.ssl.trustStore"," C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts" );  
  2.   
  3. System.setProperty("javax.net.ssl.trustStorePassword","Aa1234");  

这样配置好后,就可以通过https调用客户端了。生成客户端的时候,可以用http生成。http和https生成的客户端是一样的。

原文地址:http://blog.csdn.net/honglei915/archive/2010/12/13/6073290.aspx

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多