WebService 是基于SOAP协议传输的,SOAP是以XML文件形式进行信息传输,是明文,这是不安全的,所以我们可以在WebService加上SSL/HTTPS协议来进行数据传输
基于Axis的WebService可以很好的实现,在这里我们使用tomcat服务器
使用JDK自带的工具创建密匙库和信任库。
1)通过使用以下的命令来创建服务器端的密匙库:
keytool-genkey-aliasServer-keystoreserver.keystore-keyalgRSA
输入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-aliasServer-filetest_axis.cer-storepassstrongit-keystoreserver.keystore
然后把RSA证书输入到一个新的信任库文件中。这个信任库被客户端使用,被用来验证服务器端的身份。
keytool-import-filetest_axis.cer-storepasschangeit-keystoreclient.truststore-aliasserverkey-noprompt
以上命令执行完成后,将获得一个名为client.truststore的信任库。
3)同理生成客户端的密匙库client.keystore和服务器端的信任库server.truststore.方便起见给出.bat文件
gen-cer-store.bat内容如下:
setSERVER_DN="CN=Server,OU=ec,O=ec,L=nanchang,S=jiangxi,C=CN"
setCLIENT_DN="CN=Client,OU=ec,O=ec,L=nanchang,S=jiangxi,C=CN"
setKS_PASS=-storepassstrongit
setKEYINFO=-keyalgRSA
keytool-genkey-aliasServer-dname%SERVER_DN%%KS_PASS%-keystoreserver.keystore%KEYINFO%-keypassstrongit
keytool-export-aliasServer-filetest_axis.cer%KS_PASS%-keystoreserver.keystore
keytool-import-filetest_axis.cer%KS_PASS%-keystoreclient.truststore-aliasserverkey-noprompt
keytool-genkey-aliasClient-dname%CLIENT_DN%%KS_PASS%-keystoreclient.keystore%KEYINFO%-keypassstrongit
keytool-export-aliasClient-filetest_axis.cer%KS_PASS%-keystoreclient.keystore
keytool-import-filetest_axis.cer%KS_PASS%-keystoreserver.truststore-aliasclientkey-noprompt
好的,现在我们就有了四个文件:server.keystore,server.truststore,client.keystore,client.truststore
更改Tomcat的配置文件(server.xml),增加以下部署描述符:(其实里面有,只是被注释掉了)
<Connectorport="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"/>
这里主要讲如何使用JDK自带的工具创建密匙库和信任库
分享到:
相关推荐
搭建的一个基于WebService的C/S框架
NULL 博文链接:https://lj6684.iteye.com/blog/727688
这是个天气查询的VB的webservice 的B/S系统 写的相当完美 大家应该多学习!!
WebService URLConnection request/response JDK1.3及以上都有实现 例子比较乱...
调用https协议的webservice,以及证书手动加载。
NULL 博文链接:https://lindows.iteye.com/blog/1725279
改实例是我在开发过程中对C++中Webservice和HTTP网络传输的总结,你值得拥有
VB.NET(2010)/JAVA 采用SOAP 与Webservice发送/接收数据
java 调用https发布的webservice接口实例及axis包及详细说明
NULL 博文链接:https://sunyf.iteye.com/blog/1874218
webservice 实现文件的传输。
CFX构建webservice实例,与Spring整合;以及调用https协议的webservice,附带源码,及其证书
基于maven工程搭建webservice-axi2入门demo开发(helloword)示例,pom.xml,webservice测试类希望能帮到你
09.WebService核心技术之SOAP协议深入详解.
目前来说,WebService是 SOA 的一种较好的实现方式,WebService采用 HTTP 作为传输协议,SOAP(Simple Object Access Protocol)作为传输消息的格式。但 WebService 并不是完全符合 SOA 的概念,因为 SOAP 协议是 ...
linux、webservice、ssl、socket、搜索引擎nutch.rar
这是本人写的一个基于WebService的Java项目,...你也可以直接访问地址:http://127.0.0.1:8080/webservice/ws/queryuser?wsdl来查看WebService的配置。这是一个完整的项目,本人保证代码质量,请放心下载,谢谢支持!
SOAP使用的简单例子,和WEBSERVICE使用SOAP协议传输
目前来说,WebService 是 SOA 的一种较好的实现方式,WebService 采用 HTTP 作为传输协议,SOAP (Simple Object Access Protocol)作为传输消息的格式。但 WebService 并不是完全符合 SOA 的概念,因为 SOAP ...