您的位置:首页 > 理论基础 > 计算机网络

使用SSL/HTTPS协议来建立安全的AXIS服务传输

2015-01-15 12:26 489 查看

使用SSL/HTTPS协议来建立安全的AXIS服务传输

文章目录

1、使用JDK自带的工具创建密匙库和信任库。
2、更改Tomcat的配置文件(server.xml),增加以下部署描述符:(其实里面有,只是被注释掉了)
3、修改客户端程序 TestClient.java(修改的部分已标出)

使用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=Linkage, O=Linkage, L=Nanjing, S=Jiangsu, C=CN"
set CLIENT_DN="CN=Client, OU=Linkage, O=Linkage, L=Nanjing, S=Jiangsu, C=CN"
set KS_PASS=-storepass linkage
set KEYINFO=-keyalg RSA

keytool -genkey -alias Server -dname %SERVER_DN% %KS_PASS% -keystore server.keystore %KEYINFO% -keypass linkage
keytool -export -alias Server -file alipms_axis.cer %KS_PASS% -keystore server.keystore
keytool -import -file alipms_axis.cer %KS_PASS% -keystore client.truststore -alias serverkey -noprompt

keytool -genkey -alias Client -dname %CLIENT_DN% %KS_PASS% -keystore client.keystore %KEYINFO% -keypass linkage
keytool -export -alias Client -file alipms_axis.cer %KS_PASS% -keystore client.keystore
keytool -import -file alipms_axis.cer %KS_PASS% -keystore server.truststore -alias clientkey -noprompt

好的,现在我们就有了四个文件:server.keystore,server.truststore,client.keystore,client.truststore

2、更改Tomcat的配置文件(server.xml),增加以下部署描述符:(其实里面有,只是被注释掉了)

<Connector port="8440"
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" />

3、修改客户端程序 TestClient.java(修改的部分已标出)

/**
* webservice测试客户端
*
* @author XiongLiang
*/
public class QueryHijackInfoTest {

public static void main(String[] args) throws RemoteException {
System.setProperty("javax.net.ssl.keyStore", "E:\\ssl\\client.keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "linkage");
System.setProperty("javax.net.ssl.trustStore", "E:\\ssl\\client.truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "linkage");

String queryURL = "https://192.168.58.161:8443/services/QueryHijackInfo?wsdl";
String queryDomain = "xiongl.com";
String queryNodeIp = "1.2.3.4";

QueryHijackInfoProxy queryHijackInfoProxy = new QueryHijackInfoProxy(queryURL);
String result = queryHijackInfoProxy.queryHijack(queryDomain,queryNodeIp);

System.out.println("result: " + result);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐