為了使客戶端能夠通過https 訪問webService,需要給tomcat和axis2配置ssl.分別在服務(wù)器端和客戶端做配置:
服務(wù)器端:
1. 在服務(wù)器端生成證書
建立文件夾c:/crt,在dos窗口中執(zhí)行以下命令,。
- cd c:/ crt
-
- 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, 添加以下代碼:
- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
-
- maxThreads="150" scheme="https" secure="true"
-
- clientAuth="false" sslProtocol="TLS"
-
- keystoreFile="C:/crt/server.jks" keystorePass="Aa1234"/>
keystoreFile是證書的位置,,keystorePass是生成證書時(shí)指定的密碼。
驗(yàn)證配置:https://localhost:8443/
3. 配置Axis2的SSL
編輯C:/apache-tomcat-6.0.29/webapps/axis2/WEB-INF/web.xml,,添加以下代碼:
- <transportReceiver name="https" class="org.apache.axis2.transport.http.SimpleHTTPServer">
-
- <parameter name="port" locked="false">8443</parameter>
-
- </transportReceiver>
-
- <transportSender name="https"
-
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
-
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
-
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- </transportSender>
客戶端,,這里所說的客戶端不是瀏覽器,而是程序中調(diào)用WebService的程序
1. 導(dǎo)入服務(wù)器端的證書
在客戶端建立文件夾c:/crt,,把服務(wù)器端生成的證書server.jks拷貝到c:/crt,在dos窗口中分別執(zhí)行以下命令,。
- cd c:/ crt
- keytool -export -alias server -keystore server.jks -file server.cer
- cd C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/
- keytool -import -trustcacerts -alias server -keystore cacerts -file c:/crt/server.cer -storepass changeit
上個(gè)命令中的C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts 必須指向運(yùn)行時(shí)使用的JRE的對應(yīng)文件夾。
2. 在程序中添加代碼指定證書位置,在xxxxFactory類的getXXXStub方法中調(diào)用客戶端的代碼之前加上:
- System.setProperty("javax.net.ssl.trustStore"," C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts" );
-
- System.setProperty("javax.net.ssl.trustStorePassword","Aa1234");
這樣配置好后,,就可以通過https調(diào)用客戶端了,。生成客戶端的時(shí)候,可以用http生成,。http和https生成的客戶端是一樣的,。
原文地址:http://blog.csdn.net/honglei915/archive/2010/12/13/6073290.aspx