1、在tomcat中安装axis2插件
2、生成证书,用jdk自带的keytool
服务端 keytool -genkey -alias Server -dname "CN=192.168.10.100, OU=JH, O=JH, L=HangZhou, S=ZheJiang, C=CN" -keystore server.keystore -keyalg RSA keytool -export -alias Server -file server.cer -storepass 123456 -keystore server.keystore keytool -import -file server.cer -storepass 123456 -keystore client.truststore -alias serverkey -noprompt 客户端 keytool -genkey -alias Client -dname "CN=192.168.10.101, OU=JH, O=JH, L=HangZhou, S=ZheJiang, C=CN" -keystore client.keystore -keyalg RSA keytool -export -alias Client -file client.cer -storepass 123456 -keystore client.keystore keytool -import -file client.cer -storepass 123456 -keystore server.truststore -alias clientkey -noprompt keytool命令记录 1、生成服务器端私钥kserver.keystore文件 2、根据私钥,导出服务器端安全证书 3、将服务器端证书,导入到客户端的Trust KeyStore中 4、生成客户端私钥kclient.keystore文件 5、根据私钥,导出客户端安全证书 6、将客户端证书,导入到服务器端的Trust KeyStore中
CN--ip或者域名
3、修改tomcat-->conf-->server.xml配置,添加
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="C:\\tomcat\\keystore\\server.keystore" keystorePass="123456" truststoreFile="C:\\tomcat\\keystore\\server.truststore" truststorePass="123456" clientAuth="true" sslProtocol="TLS" />
port-->https端口
SSLEnabled="true"启用SSL认证
keystoreFile-->keystore文件存储的位置 keystorePass-->keystore文件密码
truststoreFile-->truststore文件存储的位置 truststorePass-->truststore文件存储的位置
clientAuth="true" 双向认证 "false"单向认证
4、如果有需求对所有的请求都适用https访问的话,需要修改tomcat-->conf-->web.xml配置,添加
<security-constraint> <web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
注意:url-pattern根据自己的需求进行修改,也可以在axis2中的web.xml进行相同配置
5、对Axis2进行配置,修改tomcat-->webapps-->axis2-->WEB-INF-->conf-->web.xml,添加
<transportReceiver name="https" class="org.apache.axis2.transport.http.AxisServletListener"> <parameter name="port">8443</parameter> </transportReceiver> <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"> <parameter name="PROTOCOL">HTTP/1.1</parameter> <parameter name="Transfer-Encoding">chunked</parameter> </transportSender>
6、在程序中添加代码指定证书位置,在xxxxFactory类的getXXXStub方法中调用客户端的代码之前加上:
System.setProperty("javax.net.ssl.keyStore","/Users/linjian/Desktop/keystores/test/client.keyStore"); System.setProperty("javax.net.ssl.keyStorePassword", "123456");System.setProperty("javax.net.ssl.trustStore","/Users/linjian/Desktop/keystores/test/client.truststore"); System.setProperty("javax.net.ssl.trustStorePassword", "123456");
时间: 2024-10-13 07:55:21