`
gudao8192
  • 浏览: 95338 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

WebService 采用SSL/HTTPS协议来传输

阅读更多

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自带的工具创建密匙库和信任库

分享到:
评论

相关推荐

    C++中通过Webservice和HTTP协议的网络传输

    HTTPS协议是HTTP与SSL/TLS的结合,提供了加密传输和身份验证。C++中可以使用OpenSSL库来实现HTTPS通信。 7. **性能优化** 对于大规模的网络应用,性能优化是关键。可以通过缓存、多线程、异步I/O等方式提高网络...

    java 调用https webservice实例及axis包

    首先,理解HTTPS(超文本传输安全协议)是HTTP的安全版本,它通过SSL/TLS协议对数据进行加密,以确保数据在传输过程中的隐私和完整性。在Java中,通过`javax.net.ssl`包提供的类可以支持HTTPS连接。 Apache Axis是...

    调用https协议的webservice,以及证书手动加载

    HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP的安全协议,它通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)提供加密处理、服务器身份验证和消息完整性检查,确保数据在网络间传输时...

    webservice+https.zip

    WebService通常使用SOAP(Simple Object Access Protocol)协议进行通信,而HTTPS协议则用于在传输层提供安全连接。在调用HTTPS接口时,需要配置Web Service客户端以支持HTTPS。这通常涉及到设置URL为HTTPS格式,...

    Java中如何通过https调用Webservice接口_测试环境.rar

    首先,我们需要理解HTTPS的核心特性:它基于HTTP协议,但在数据传输层增加了SSL/TLS协议,提供了加密处理、服务器身份验证和消息完整性检查,以防止中间人攻击。 1. **配置信任的CA证书** 在调用HTTPS服务时,Java...

    spring+CXF实现WebService(http+https)

    HTTPS是一种安全的通信协议,它在HTTP基础上增加了SSL/TLS层,用于加密传输数据,防止中间人攻击。在Java中,HTTPS通常需要服务器证书和私钥,这些通常存储在JKS(Java Key Store)文件中。 4. **配置JKS**: JKS...

    linux、webservice、ssl、socket、搜索引擎nutch.rar

    SSL(Secure Socket Layer)和其后续版本TLS(Transport Layer Security)是网络通信中的安全协议,主要用于确保数据在互联网上的安全传输。它们通过加密技术实现数据的私密性,通过身份验证确保通信双方的真实身份...

    CFX构建webservice实例,与Spring整合;以及调用https协议的webservice,附带源码,及其证书

    - HTTPS安全基础:HTTPS是HTTP协议与SSL/TLS协议的结合,用于加密传输数据,确保通信的安全性。 - 配置证书:为客户端和服务端生成或获取数字证书,以建立安全连接。证书可能需要导入到Java的信任库或CXF配置中。 ...

    调用https格式的webservice jar包。

    HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它利用SSL/TLS协议对传输的数据进行加密,确保数据的机密性和完整性,防止中间人攻击。 首先,要调用HTTPS格式的Web Service,你需要确保你的开发...

    HTTP使用WEBLOGIC修改为HTTPS协议

    为了解决这个问题,通常会将HTTP升级为HTTPS(超文本传输安全协议),它通过SSL/TLS协议提供加密处理和身份认证。在这个场景下,我们将探讨如何使用WebLogic,一个由Oracle公司提供的Java应用服务器,来将HTTP转换为...

    使用cxf和spring开发基于https的webservice服务端以及客户端样例

    总的来说,通过Apache CXF和Spring框架,我们可以轻松地构建基于HTTPS的Web服务,确保数据传输的安全性。理解并掌握这种开发方式对于任何涉及Web服务交互的Java开发者都至关重要。同时,对于理解和实施安全通信标准...

    安卓网站交互JSONxmlWebserviceUPnP相关-Https跳过安全认证SSL用于android开发不常用协议连接.rar

    6. 不常用协议连接:这可能指的是除了HTTP/HTTPS之外的网络协议,如FTP、SMTP、TCP/IP直连等,这些在特定场景下可能会用到。 压缩包内的文件: - JavaApk源码说明.txt:很可能包含对源代码的解释和指导,帮助理解...

    https连接webservice

    它通过SSL/TLS协议来加密HTTP通信内容,确保客户端与服务器之间的数据传输不被窃听或篡改。 - **WebService简介**:WebService是一种跨编程语言和操作系统平台的应用程序接口(API),允许应用程序之间通过网络进行...

    c#通过https方式WebServices例子

    HTTPS是一种安全的通信协议,它结合了HTTP协议与SSL/TLS协议,能为数据传输提供加密和身份验证,确保数据在传输过程中的安全性和完整性。 首先,我们需要理解“Java端写的https webservices”。在Java中,可以使用...

    CXF实现SSL安全验证

    ### CXF实现SSL安全验证 在现代网络应用中,安全通信是至关重要的。Apache CXF 是一个开源项目,提供了一套强大的工具和服务框架,用于构建和开发基于标准的服务(如 Web Services)。本文将详细介绍如何使用 CXF ...

    外部接口文档webService socket josn

    - **工作原理**:WebService通过HTTP协议传输基于XML的数据,使用SOAP(Simple Object Access Protocol)作为消息传递协议,WSDL(Web Services Description Language)用于描述服务,UDDI(Universal Description,...

    SSL数据加密的好资料

    在Webservice中,SSL常用于保护SOAP消息的传输,确保服务调用的安全性。 SSL工作流程主要包括以下几个步骤: 1. 握手协议:客户端和服务器端通过SSL握手协议建立连接,确定加密算法、交换会话密钥等。 2. 身份验证...

    cxf https webservice

    而HTTPS(HTTP over SSL/TLS)则是一种安全的网络通信协议,用于保护数据传输过程中的隐私和完整性。 【描述】"cxf 调用https webservice接口 ,此工程jar包齐全可直接导入eclipse进行二次开发"指出,这个压缩包...

    WebService的安全机制

    例如,在通信层中可以使用 SSL/TLS 加密协议来保护数据传输,使用身份验证机制来确保只有授权用户可以访问 WebService。 SOAP 安全是指在 WebService 中使用 SOAP 协议来实现安全保护的机制,包括身份验证、访问...

Global site tag (gtag.js) - Google Analytics