校车发车管理制度:Tomcat+Axis2 WebService配置SSL单向验证

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 03:27:45

Tomcat+Axis2 WebService配置SSL单向验证

分类: Java 2010-12-13 15:01 713人阅读 评论(0) 收藏 举报

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

服务器端:

1.         在服务器端生成证书

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

view plaincopy to clipboardprint?

  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.         配置Tomcat的SSL

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

view plaincopy to clipboardprint?

  1.   
  2.     maxThreads="150" scheme="https" secure="true"    
  •   
  •     clientAuth="false" sslProtocol="TLS"    
  •   
  •     keystoreFile="C:/crt/server.jks" keystorePass="Aa1234"/>    
  •   

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

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

    3.         配置Axis2的SSL

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

       view plaincopy to clipboardprint?

    1.   
    2.   
    3.    8443  
  •   
  •   
  •   
  •   
  • class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">  
  •   
  •    HTTP/1.1  
  •   
  •    chunked  
  •   
  •   
  • 客户端,这里所说的客户端不是浏览器,而是程序中调用WebService的程序

    1.         导入服务器端的证书

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

    view plaincopy to clipboardprint?

    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方法中调用客户端的代码之前加上: view plaincopy to clipboardprint?

    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

     

    分享到: