首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

配备https 类型的 webservice

2012-09-23 
配置https 类型的 webserviceWebService 是基于SOAP协议传输的,SOAP是以XML文件形式进行信息传输,是明文,

配置https 类型的 webservice
WebService 是基于SOAP协议传输的,SOAP是以XML文件形式进行信息传输,是明文,这是不安全的,所以我们可以在WebService加上SSL/HTTPS协议来进行数据传输


基于Axis的WebService可以很好的实现,在这里我们使用tomcat服务器


使用JDK自带的工具创建密匙库和信任库。


1)通过使用以下的命令来创建服务器端的密匙库:

   keytool -genkey -alias Server -keystore server.keystore -keyalg RSA

输入keystore密码: strongit

您的名字与姓氏是什么?

[Unknown]: Server

您的组织单位名称是什么?

[Unknown]: ec

您的组织名称是什么?

[Unknown]: ec

您所在的城市或区域名称是什么?

[Unknown]: nanchang

您所在的州或省份名称是什么?

[Unknown]: jiangxi

该单位的两字母国家代码是什么

[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 strongit-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=ec, O=ec, L=nanchang, S=jiangxi, C=CN"

     set CLIENT_DN="CN=Client, OU=ec, O=ec, L=nanchang, S=jiangxi, C=CN"

     set KS_PASS=-storepass strongit

     set KEYINFO=-keyalg RSA


     keytool -genkey -alias Server -dname %SERVER_DN% %KS_PASS% -keystore server.keystore %KEYINFO% -keypass strongit

     keytool -export -alias Server -file test_axis.cer %KS_PASS% -keystore server.keystore

     keytool -import -file test_axis.cer %KS_PASS% -keystore client.truststore -alias serverkey -noprompt


     keytool -genkey -alias Client -dname %CLIENT_DN% %KS_PASS% -keystore client.keystore %KEYINFO% -keypass strongit

     keytool -export -alias Client -file test_axis.cer %KS_PASS% -keystore client.keystore

     keytool -import -file test_axis.cer %KS_PASS% -keystore server.truststore -alias clientkey -noprompt

    

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




更改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" />

热点排行