HTTPS在WebService中的实践与应用案例(HTTPS在哪一层?)

一、引言

随着互联网技术的飞速发展,Web服务(WebService)已成为企业间数据交互的重要桥梁。
为了保证数据传输的安全性和完整性,HTTPS协议在WebService中的应用越来越广泛。
本文将介绍HTTPS在WebService中的实践与应用案例,并探讨HTTPS在哪一层发挥着重要作用。

二、HTTPS概述

HTTPS是一种通过计算机网络进行安全通信的传输协议。
它是在HTTP协议的基础上,通过SSL/TLS加密技术实现数据传输的安全。
HTTPS协议采用对称加密与非对称加密相结合的方式,确保数据传输的机密性、完整性和身份验证。

三、HTTPS在WebService中的实践

1. 安全性需求

WebService在不同场景中有着丰富的应用,其中涉及到数据交换、远程调用等服务。
随着数据量的增长和数据敏感度的提高,WebService的安全性需求日益突出。
HTTPS为WebService提供了安全保障,可以确保数据传输过程中的安全性、完整性和身份验证。

2. 实践应用

(1)数据交换服务:在企业间的数据交换过程中,HTTPS保证了数据的机密性和完整性,防止数据在传输过程中被窃取或篡改。

(2)远程调用服务:通过HTTPS实现的远程调用服务,可以确保客户端与服务器之间的通信安全,避免因网络攻击导致的数据泄露或服务中断。

(3)API接口服务:在现代应用中,API接口广泛应用于各类应用间的数据交互。
HTTPS为API接口提供了安全保障,确保API调用过程中的数据安全。

四、HTTPS在哪一层发挥作用?

为了深入理解HTTPS在WebService中的应用,我们需要了解HTTPS在哪一层发挥作用。
TCP/IP协议栈包括应用层、传输层、网络层和网络接口层。
HTTPS主要是在应用层发挥作用。

在应用层,HTTP和HTTPS协议共同存在。
HTTP协议是明文传输,而HTTPS协议则在HTTP协议的基础上,通过SSL/TLS加密技术实现数据的加密传输。
因此,HTTPS在应用层对传输的数据进行加密和解密,保证数据传输的安全性。

五、案例分享

以某电商平台的用户注册为例,用户在注册过程中需要填写个人信息(如姓名、手机号、邮箱等)并提交至服务器进行验证和存储。
在此过程中,用户信息通过WebService进行数据交互。
为了确保用户信息的安全,该电商平台采用HTTPS协议进行数据传输。
用户在填写信息后,数据通过HTTPS加密后传输至服务器,服务器在接收到加密数据后进行解密并处理。
这样,即使数据在传输过程中被截获,攻击者也无法获取到明文信息,从而保证了用户信息的安全性。

六、结论

本文介绍了HTTPS在WebService中的实践与应用案例,并探讨了HTTPS在哪一层发挥作用。
HTTPS协议在WebService中的应用越来越广泛,它可以确保数据传输的安全性和完整性。
HTTPS主要在应用层发挥作用,通过SSL/TLS加密技术实现数据的加密传输。
在实际应用中,HTTPS广泛应用于数据交换服务、远程调用服务和API接口服务等领域。
随着网络安全需求的不断提高,HTTPS将在WebService中发挥更加重要的作用。


采用SSL协议保护对Web服务的访问,按照提示完成配置步骤的记录

保证通信进程安全的一个关键步骤是对通信双方进行认证,SSL握手子协议负责这一进程处理:客户端向服务器提交有效证书,服务器采用公共密钥算法对证书信息进行

网络的七层模型里面,常用的一些服务,如www,ftp,tftp,ip,tcp/ip,icmp这些应用都是工作在那层上面的?

OSI7层模型与网络协议一7层模型由下至上为1至7层,分别为: 应用层(Application;layer) 表示层(Presentation;layer) 会话层(Session;layer) 传输层(Transport;layer) 网络层(Network;layer) 数据链路层(Data;link;layer) 物理层(Physical;layer) 其中上三层称之为高层,定义应用程序之间的通信和人机界面。 什么意思呢,就是上三层负责把电脑能看懂的东西转化为你能看懂的东西,或把你能看懂的东西转化为电脑能看懂的东西。 下四层称之为底层,定义的是数据如何端到端的传输(end-to-end),物理规范以及数据与光电信号间的转换。 下面一层一层的来说明: 应用层,很简单,就是应用程序。 这一层负责确定通信对象,并确保由足够的资源用于通信,这些当然都是想要通信的应用程序干的事情。 表示层,负责数据的编码、转化,确保应用层的正常工作。 这一层,是将我们看到的界面与二进制间互相转化的地方,就是我们的语言与机器语言间的转化。 数据的压缩、解压,加密、解密都发生在这一层。 这一层根据不同的应用目的将数据处理为不同的格式,表现出来就是我们看到的各种各样的文件扩展名。 会话层,负责建立、维护、控制会话,区分不同的会话,以及提供单工(Simplex)、半双工(Half duplex)、全双工(Full;duplex)三种通信模式的服务。 我们平时所知的NFS,RPC,X Windows等都工作在这一层。 传输层,负责分割、组合数据,实现端到端的逻辑连接。 数据在上三层是整体的,到了这一层开始被分割,这一层分割后的数据被称为段(Segment)。 三次握手(Three-way handshake),面向连接(Connection-Oriented)或非面向连接(Connectionless-Oriented)的服务,流控(Flow control)等都发生在这一层。 网络层,负责管理网络地址,定位设备,决定路由。 我们所熟知的IP地址和路由器就是工作在这一层。 上层的数据段在这一层被分割,封装后叫做包(Packet),包有两种,一种叫做用户数据包(Data packets),是上层传下来的用户数据;另一种叫路由更新包(Route;update packets),是直接由路由器发出来的,用来和其他路由器进行路由信息的交换。 数据链路层,负责准备物理传输,CRC校验,错误通知,网络拓扑,流控等。 我们所熟知的MAC地址和交换机都工作在这一层。 上层传下来的包在这一层被分割封装后叫做帧(Frame)。 物理层,就是实实在在的物理链路,负责将数据以比特流的方式发送、接收。 二.网络协议 IP(Internet;Protocol;网际协议)连接两个节点。 每个节点都由一个32位地址来标识。 当发送消息时,IP协议从较高级的协议(TCP或UDP)接受消息,并添加包含有关目标主机信息的IP报头。 TCP(传输控制协议),TCP要求在发送数据之前必须打开连接。 服务器应用程序必须执行一个称作被动打开(passive;open)的操作,以利用一个已知的端口号创建一个连接,这时,服务器并不是对网络进行呼叫,而是侦听并等待引入的请求。 客户应用程序必须执行一个主动打开(active;open),为此,它向服务器应用程序发送一个同步序列号(SYN)以标识连接。 客户应用程序可以将动态端口号作为本地的端口使用。 服务器必须向客户发送一个确认(ACK)以及服务器的序列号(SYN),随后,客户恢复一个ACK,这样就建立连接了。 如果在收到ACK之前发送方已经超时,则消息将被放到重发队列中以再次发送。 UDP(用户数据报协议),UDP是一个速度很快的协议,因为它仅仅指定了数据传输所需要的最低机制,它的缺点,消息接收顺序不确定,第一个发送的消息可能最后一个被接到。 消息可能丢失,也可能同时接收到2个相同的消息。 在发送多播和广播时,我们通常不希望从每个节点都返回一个确认,这样将使服务器超负荷,并且网络负荷变大,所以在这个情况下使用UDP协议是很好的选择。 ICMP(Internet控制消息协议)是一个控制协议,IP设备用来向其他的IP设备通知网络中的活动和错误。 如果没有TCP协议,则IP;并不是一个可靠的协议,并且没有确认,没有数据的错误控制功能(只有一个报头校验和),也不能重新传输。 ICMP消息在IP报头的内部发送,ICMP消息来发送的类型:响应和响应回复,目标不可达和重定向,超时。 在用PING命令时会发送4个ICMP消息。 IGMP(Internet组管理协议)是IP协议的一个扩充,必须由IP模块来实现。 多播应用程序使用IGMP,利用IGMP消息发送对某个多播地址的一组成员请求,这样就能够注册某条多播消息,也可以使用IGMP取消成员的关系。 FTP(File;Transfer;Protocol;文件传输协议)用于将文件复制到服务器,反之亦然。 他还能列举服务器上的文件和目录。 他是一个基于TCP的应用层协议,FTP命令封装在TCP消息的TCP数据块中。 HTTP(Hypertext;Transfer;Protocol;超文本传输协议)HTTP是一个可靠的协议,这通过使用TCP来实现,HTTP具有:缓存、客户应用程序身份识别、支持各种MIME格式的不同附件等。 HTTPS(SSL上的HTTP)如果需要与WEB服务器交换机密数据,则可以使用HTTPS,SSL(Secure;Socket;Layer;安全套接字层),SSL在TCP之上,他使用一个公钥/私钥原理来交换保密的对称密钥,用一个对称密钥来加密消息。 想要支持HTTPS,WEB服务器必须安装一个证书,HTTPS默认端口是443。 SMTP(Simple;Mail;Transfer;Protocol;简单邮件传输协议)是一个用于发送和接受邮件消息的协议。 SMTP不允许我们从邮件服务器读取消息,为此需要使用POP3或者IMAP协议。 POP3(Post;Office;Protocol;邮局协议)是为断开环境设计的。 利用POP3,客户可以访问服务器,并获取服务器为其所保留的消息。 IMAP(Internet;Message;Access;Protocol;Internet消息访问协议)用来访问邮件服务器上的邮件,IMAP客户可以有脱机模式,这时可以在本地机器上对邮件进行操作。 IMAP使客户能够对远程邮箱进行操作,就像是本地操作邮箱一样。 NNTP(Network;News;Transfer;Protocol;网络新闻传输协议)是一个用于提交,中继和获取消息的应用层协议,该协议提供了能够访问新闻服务器并且从中获取选定消息的客户应用程序,并且还支持服务器到服务器的消息传输。 SNMP(Simple;Network;Management;Protocol;简单网络管理协议)可以对网络上的设备进行管理。 SNMP的目的在于利用性能问题和故障触发的警报来有效的管理设备,并且允许对设备进行配置。 与网络设备相关联的SNMP代理将有一个MIB(Management;Information;Base;管理信息库)数据库,它将面向对象的方式包含了该设备的可管理信息。 SNMP客户通过发送SNMP;GET;请求来访问数据库中的信息,用SNMP;SET;请求配置MIB数据库。 Telnet协议,该协议使我们能够利用用户身份验证连接到一个远程系统,然后从一个控制台环境远程调用命令。

如何通过HTTPS方式访问web service

web service在企业应用中常常被用作不同系统之间的接口方式。 但是如果没有任何安全机制的话,显然是难以委以重任的。 比较直接的web service加密方式就是使用HTTPS方式(SSL证书加密)加密连接,并且只允许持有信任证书的客户端连接,即SSL双向认证。 这样就保证了连接来源的可信度以及数据在传输过程中没有被窃取或篡改。 通过HTTPS加密方式访问web service具体方法如下:【准备工作】(1)检查JDK的环境变量是否正确。 本文使用JDK 1.6(2)准备web服务器,这里选用TOMCAT 6.0(3)准备web service服务端和客户端。 【生成证书】这里用到的文件,这里存放在D:/SSL/文件夹内,其中D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。 1生成服务端证书开始-运行-CMD-在dos窗口执行下执行命令:keytool -genkey -v -aliastomcat -keyalg RSA -keystore D:/SSL/server/ -dnameCN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN -validity 3650-storepass zljzlj -keypass zljzlj说明:keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help-genkey 创建新证书-v 详细信息-alias tomcat 以”tomcat”作为该证书的别名。 这里可以根据需要修改-keyalg RSA 指定算法-keystoreD:/SSL/server/ 保存路径及文件名-dnameCN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN 证书发行者身份,这里的CN要与发布后的访问域名一致。 但由于这里是自签证书,如果在浏览器访问,仍然会有警告提示。 真正场景中建议申请CA机构(wosign)签发的SSL证书更安全。 -validity 3650证书有效期,单位为天-storepass zljzlj 证书的存取密码-keypass zljzlj 证书的私钥2 生成客户端证书执行命令:keytool ‐genkey ‐v ‐aliasclient ‐keyalg RSA ‐storetype PKCS12 ‐keystore D:/SSL/client/client.p12 ‐dnameCN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN ‐validity 3650 ‐storepassclient ‐keypass client说明:参数说明同上。 这里的-dname 证书发行者身份可以和前面不同,到目前为止,这2个证书可以没有任何关系。 下面要做的工作才是建立2者之间的信任关系。 3 导出客户端证书执行命令:keytool ‐export ‐aliasclient ‐keystore D:/SSL/client/client.p12 ‐storetype PKCS12 ‐storepass client‐rfc ‐file D:/SSL/client/说明:-export 执行导出-file 导出文件的文件路径4 把客户端证书加入服务端证书信任列表执行命令:keytool ‐import ‐aliasclient ‐v ‐file D:/SSL/client/ ‐keystoreD:/SSL/server/ ‐storepass zljzl说明:参数说明同前。 这里提供的密码是服务端证书的存取密码。 5 导出服务端证书执行命令:keytool -export -aliastomcat -keystore D:/SSL/server/ -storepass zljzlj -rfc -fileD:/SSL/server/说明:把服务端证书导出。 这里提供的密码也是服务端证书的密码。 6 生成客户端信任列表执行命令:keytool -import -fileD:/SSL/server/ -storepass zljzlj -keystoreD:/SSL/client/ -alias tomcat –noprompt说明:让客户端信任服务端证书【 配置服务端为只允许HTTPS连接】1 配置Tomcat 目录下的/conf/代码:<Connectorport=8443 protocol=HTTP/1.1 SSLEnabled=truemaxThreads=150 scheme=https secure=trueclientAuth=true sslProtocol=TLSkeystoreFile=D:/SSL/server/ keystorePass=zljzljtruststoreFile=D:/SSL/server/ truststorePass=zljzlj />说明:在里面这段内容本来是被注释掉的,如果想使用https的默认端口443,请修改这里的port参数。 其中的clientAuth=true 指定了双向证书认证。