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自带的工具创建密匙库和信任库
分享到:
相关推荐
首先,理解HTTPS(超文本传输安全协议)是HTTP的安全版本,它通过SSL/TLS协议对数据进行加密,以确保数据在传输过程中的隐私和完整性。在Java中,通过`javax.net.ssl`包提供的类可以支持HTTPS连接。 Apache Axis是...
HTTPS协议是HTTP与SSL/TLS的结合,提供了加密传输和身份验证。C++中可以使用OpenSSL库来实现HTTPS通信。 7. **性能优化** 对于大规模的网络应用,性能优化是关键。可以通过缓存、多线程、异步I/O等方式提高网络...
HTTPS是一种安全的通信协议,它在HTTP基础上增加了SSL/TLS层,用于加密传输数据,防止中间人攻击。在Java中,HTTPS通常需要服务器证书和私钥,这些通常存储在JKS(Java Key Store)文件中。 4. **配置JKS**: JKS...
SSL(Secure Socket Layer)和其后续版本TLS(Transport Layer Security)是网络通信中的安全协议,主要用于确保数据在互联网上的安全传输。它们通过加密技术实现数据的私密性,通过身份验证确保通信双方的真实身份...
HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP的安全协议,它通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)提供加密处理、服务器身份验证和消息完整性检查,确保数据在网络间传输时...
WebService通常使用SOAP(Simple Object Access Protocol)协议进行通信,而HTTPS协议则用于在传输层提供安全连接。在调用HTTPS接口时,需要配置Web Service客户端以支持HTTPS。这通常涉及到设置URL为HTTPS格式,...
### CXF实现SSL安全验证 在现代网络应用中,安全通信是至关重要的。Apache CXF 是一个开源项目,提供了一套强大的工具和服务框架,用于构建和...这种方式不仅确保了数据传输的安全性,还提高了系统的整体安全等级。
总的来说,通过Apache CXF和Spring框架,我们可以轻松地构建基于HTTPS的Web服务,确保数据传输的安全性。理解并掌握这种开发方式对于任何涉及Web服务交互的Java开发者都至关重要。同时,对于理解和实施安全通信标准...
首先,我们需要理解HTTPS的核心特性:它基于HTTP协议,但在数据传输层增加了SSL/TLS协议,提供了加密处理、服务器身份验证和消息完整性检查,以防止中间人攻击。 1. **配置信任的CA证书** 在调用HTTPS服务时,Java...
在对SoapHeader进行加密时,我们通常采用SSL/TLS(Secure Sockets Layer/Transport Layer Security)协议,该协议可以对网络上的数据传输进行加密,确保信息不被第三方窃取或篡改。在WebService客户端,我们需要配置...
HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它利用SSL/TLS协议对传输的数据进行加密,确保数据的机密性和完整性,防止中间人攻击。 首先,要调用HTTPS格式的Web Service,你需要确保你的开发...
通过HTTPS协议加密传输的WebService可以有效防止数据泄露和中间人攻击。 #### 二、建立私密连接的步骤 1. **环境准备**: - 操作系统:Windows 7 - Web服务器:Tomcat 7 - JDK版本:1.7 2. **使用JDK的...
在Webservice中,SSL常用于保护SOAP消息的传输,确保服务调用的安全性。 SSL工作流程主要包括以下几个步骤: 1. 握手协议:客户端和服务器端通过SSL握手协议建立连接,确定加密算法、交换会话密钥等。 2. 身份验证...
10. **安全性检查**:在测试过程中,工具可能提供安全方面的检查,例如检查SSL/TLS配置,确保数据传输的安全性。 在实际应用中,使用WebserviceStudio20这样的测试工具,开发者可以高效地测试Web服务的正确性、稳定...
在实际应用中,为了保证数据的安全性,WebService可能会采用HTTPS(HTTP over SSL/TLS)协议,以加密传输敏感信息,如密码或邮件内容。此外,为了防止过度使用或滥用服务,可能还会实现身份验证机制,如API密钥或...
而HTTPS(HTTP over SSL/TLS)则是一种安全的网络通信协议,用于保护数据传输过程中的隐私和完整性。 【描述】"cxf 调用https webservice接口 ,此工程jar包齐全可直接导入eclipse进行二次开发"指出,这个压缩包...
5. **HTTP/HTTPS功能**:支持HTTP/1.x和HTTP/2,以及POST、PUT、DELETE等HTTP方法,符合RESTful API的设计原则。 【使用流程】 在本示例中,"WebService.zip"可能包含了基于VS2008编译的mongoose和Libcurl库。使用...
例如,对于安全要求较高的服务,可能需要集成SSL/TLS支持,处理证书验证。对于可能出现的网络问题,需要实现重试机制。 总之,C++调用WebService涉及多个技术栈的整合,包括HTTP通信、XML解析、SOAP消息处理等。...
"webservice demo"可能会介绍如何添加安全层,如SSL/TLS加密和WS-Security标准。 9. **最佳实践**:在开发Web服务时,需要注意性能优化、错误处理、版本控制和API设计的最佳实践。 10. **持续集成与部署**:随着...