基于传输控制协议的HTTPS 代理转发方法及装置转让专利

申请号 : CN201410542568.6

文献号 : CN104270379B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱磊

申请人 : 北京蓝汛通信技术有限责任公司

摘要 :

本发明公开了一种基于传输控制协议的HTTPS代理转发方法及装置。该方法包括:无证书的HTTPS代理服务器与客户端建立传输控制协议连接;无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求;无证书的HTTPS代理服务器通过解析安全套接层连接请求,获取源站域名;无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址;无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接并将安全套接层连接请求转发给源站网络互连协议地址对应的源站。通过本发明,实现了通用的HTTPS代理转发功能,同时可以达到节约IP资源的效果。

权利要求 :

1.一种基于传输控制协议的HTTPS代理转发方法,其特征在于,包括:无证书的HTTPS代理服务器与客户端建立传输控制协议连接;

所述无证书的HTTPS代理服务器接收来自所述客户端的安全套接层连接请求,其中,所述安全套接层连接请求中包含所述客户端请求访问的源站域名;

所述无证书的HTTPS代理服务器通过解析所述安全套接层连接请求,获取所述源站域名;

所述无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与所述源站域名对应的源站网络互连协议地址;

所述无证书的HTTPS代理服务器与所述源站网络互连协议地址对应的源站建立传输控制协议连接;以及所述无证书的HTTPS代理服务器将所述安全套接层连接请求转发给所述源站网络互连协议地址对应的源站。

2.根据权利要求1所述的方法,其特征在于,所述无证书的HTTPS代理服务器与所述客户端建立所述传输控制协议连接包括:所述无证书的HTTPS代理服务器通过检测所述无证书的HTTPS代理服务器的访问端口,判断是否有所述客户端发送的访问请求进入所述访问端口,其中,所述访问端口是所述无证书的HTTPS代理服务器接收所述客户端发送的访问请求的端口,所述访问请求包括所述安全套接层连接请求;以及如果所述无证书的HTTPS代理服务器检测到有所述客户端发送的访问请求进入所述访问端口,则所述无证书的HTTPS代理服务器接受所述客户端发送的访问请求,建立与所述客户端之间的传输控制协议连接。

3.根据权利要求1所述的方法,其特征在于,

所述客户端的安全套接层连接请求包括客户端问候消息,其中,所述客户端问候消息是所述客户端请求与所述无证书的HTTPS代理服务器之间建立安全套接层连接的消息,所述客户端问候消息中包含所述客户端请求访问的源站域名,所述无证书的HTTPS代理服务器通过解析所述安全套接层连接请求,获取所述源站域名包括:所述无证书的HTTPS代理服务器通过解析所述安全套接层连接请求中包括的客户端问候消息,获取所述客户端问候消息中包含的服务器名字指示扩展头字段;以及所述无证书的HTTPS代理服务器通过解析所述服务器名字指示扩展头字段,获取所述源站域名,所述无证书的HTTPS代理服务器将所述安全套接层连接请求转发给所述源站网络互连协议地址对应的源站包括所述无证书的HTTPS代理服务器将所述客户端问候消息转发给所述源站网络互连协议地址对应的源站。

4.根据权利要求1所述的方法,其特征在于,所述无证书的HTTPS代理服务器将所述安全套接层连接请求转发给所述源站网络互连协议地址对应的源站之后,所述方法还包括:所述无证书的HTTPS代理服务器获取所述源站对所述客户端的安全套接层连接请求的响应信息;以及所述无证书的HTTPS代理服务器将所述响应消息转发给所述客户端。

5.一种基于传输控制协议的HTTPS代理转发装置,其特征在于,包括:第一连接单元,用于与客户端建立传输控制协议连接;

接收单元,用于接收来自所述客户端的安全套接层连接请求,其中,所述安全套接层连接请求中包含所述客户端请求访问的源站域名;

第一获取单元,用于通过解析所述安全套接层连接请求,获取所述源站域名;

第二获取单元,用于通过查询计算机域名系统服务器获取与所述源站域名对应的源站网络互连协议地址;

第二连接单元,用于与所述源站网络互连协议地址对应的源站建立传输控制协议连接;以及第一转发单元,用于将所述安全套接层连接请求转发给所述源站网络互连协议地址对应的源站。

6.根据权利要求5所述的装置,其特征在于,所述第一连接单元包括:判断模块,用于通过检测无证书的HTTPS代理服务器的访问端口,判断是否有所述客户端发送的访问请求进入所述访问端口,其中,所述访问端口是接收所述客户端发送的访问请求的端口,所述访问请求包括所述安全套接层连接请求;

以及

第一连接模块,用于在所述无证书的HTTPS代理服务器检测到有所述客户端发送的访问请求进入所述访问端口的情况下,接受所述客户端发送的访问请求,建立与所述客户端之间的传输控制协议连接。

7.根据权利要求5所述的装置,其特征在于,所述客户端的安全套接层连接请求包括客户端问候消息,其中,所述客户端问候消息是所述客户端请求与无证书的HTTPS代理服务器之间建立安全套接层连接的消息,所述客户端问候消息中包含所述客户端请求访问的源站域名,所述第一获取单元包括:

第一获取模块,用于通过解析所述安全套接层连接请求中包括的客户端问候消息,获取所述客户端问候消息中包含的服务器名字指示扩展头字段;以及第二获取模块,用于通过解析所述服务器名字指示扩展头字段,获取所述源站域名,第一转发单元,用于将所述客户端问候消息转发给所述源站网络互连协议地址对应的源站。

8.根据权利要求5所述的装置,其特征在于,所述装置还包括:第三获取单元,用于获取所述源站对所述客户端的安全套接层连接请求的响应信息;

以及

第二转发单元,用于将所述响应消息转发给所述客户端。

说明书 :

基于传输控制协议的HTTPS代理转发方法及装置

技术领域

[0001] 本发明涉及数据传输领域,具体而言,涉及一种基于传输控制协议的HTTPS代理转发方法及装置。

背景技术

[0002] 内容分发网络(Content Delivery Network,简称为CDN),通过在现有的因特网中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,从而提高用户访问网站的响应速度。
[0003] 基于传输控制协议(Transmission Control Protocol,简称为TCP)的安全超文本传输协议(Secure Hypertext Transfer Protocol,简称为HTTPS)代理服务器(以下都简称为代理服务器),在无证书的情况下可实现数据包的代理转发。所谓无证书是指源站不将HTTPS的证书及私钥放在代理服务器上,因此代理服务器不具备对HTTPS解析的功能,即网民的访问内容是加密的,安全性得以保证。代理服务器作为“中间人”的角色,从TCP的层面进行数据包的转发。
[0004] 对于一个源站的无证书的HTTPS请求,现有的代理服务器实现代理转发的方法为:1、代理服务器与源站事先约定好源站域名和代理服务器上特定IP地址之间的映射关系;2、通过查询计算机域名系统(Domain Name System,简称为DNS)服务器,将用户的访问引导到最近的代理服务器上;3、代理服务器通过监听特定的套接字来接受来自用户的访问请求,套接字是指事先约定好的对应源站域名的代理服务器IP地址以及对应该IP地址的访问端口(通常为443端口);4、使用预先配置好的源站的套接字与源站服务器建立连接,将HTTPS请求以TCP数据的形式转发给源站服务器;5、将来自源站服务器的响应转发给用户(在本地不做分析)。图1提供了现有的代理服务器进行数据包代理转发示意图。如图1所示,源站40的域名为www.a.com,源站50的域名为www.b.com。事先约定代理服务器20的IP地址与源站
40、源站50域名的映射关系:源站40域名对应代理服务器20的IP1,源站50域名对应代理服务器20的IP2。首先,网民10发出无证书的HTTPS访问请求,代理服务器20通过监听(bind)自身绑定的IP和端口,接收网民10发出的HTTPS访问请求。然后,通过DNS服务器30查询对应相应域名的IP地址。最后,代理服务器20按照该IP地址将网民的访问请求转发给相应的源站。
[0005] 在现有的无证书的HTTPS代理服务器进行源站地址解析时,代理服务器对应一个IP地址的443端口只能服务一个源站,服务多个源站时会出现冲突。当代理服务器需要服务多个源站时,代理服务器通常采用绑定多个IP地址的方式来避免冲突问题,即代理服务器对应一个IP地址的443端口用来服务源站a,对应另一个IP地址的443端口用来服务源站b。这种实现方式,使得代理服务器能够服务的源站的个数受到绑定的IP地址个数的限制;同时,代理服务器服务多个源站会造成IP资源的严重消耗。在IP资源日益稀缺的今天,现有的代理服务器投入的成本将大幅提高。
[0006] 针对相关技术中无证书的HTTPS代理服务器在进行数据包代理转发时需要大量的IP地址,导致IP资源浪费的问题,目前尚未提出有效的解决方案。

发明内容

[0007] 针对现有的在进行数据包代理转发时需要大量的IP地址,导致IP资源浪费的问题而提出本发明,为此,本发明的主要目的在于提供一种基于传输控制协议的HTTPS代理转发方法及装置,以解决上述问题。
[0008] 为了实现上述目的,根据本发明的一个方面,提供了一种基于传输控制协议的HTTPS代理转发方法。该方法包括:无证书的HTTPS代理服务器与客户端建立传输控制协议连接;无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,安全套接层连接请求中包含客户端请求访问的源站域名;无证书的HTTPS代理服务器通过解析安全套接层连接请求,获取源站域名;无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址;无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接;无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0009] 进一步地,无证书的HTTPS代理服务器与客户端建立传输控制协议连接包括:无证书的HTTPS代理服务器通过检测无证书的HTTPS代理服务器的访问端口,判断是否有客户端发送的访问请求进入访问端口,其中,访问端口是无证书的HTTPS代理服务器接收客户端发送的访问请求的端口,访问请求包括安全套接层连接请求;如果无证书的HTTPS代理服务器检测到有客户端发送的访问请求进入访问端口,则无证书的HTTPS代理服务器接受客户端发送的访问请求,建立与客户端之间的传输控制协议连接。
[0010] 进一步地,客户端的安全套接层连接请求包括客户端问候消息,其中,客户端问候消息是客户端请求与无证书的HTTPS代理服务器之间建立安全套接层连接的消息,客户端问候消息中包含客户端请求访问的源站域名,无证书的HTTPS代理服务器通过解析安全套接层连接请求,获取源站域名包括:无证书的HTTPS代理服务器通过解析安全套接层连接请求中包括的客户端问候消息,获取客户端问候消息中包含的服务器名字指示扩展头字段;无证书的HTTPS代理服务器通过解析服务器名字指示扩展头字段,获取源站域名,无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站包括无证书的HTTPS代理服务器将客户端问候消息转发给源站网络互连协议地址对应的源站。
[0011] 进一步地,无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站包括:按照源站网络互连协议地址,无证书的HTTPS代理服务器建立与源站之间的传输控制协议连接;无证书的HTTPS代理服务器将客户端的安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0012] 进一步地,无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站之后,方法还包括:无证书的HTTPS代理服务器获取源站对客户端的安全套接层连接请求的响应信息;无证书的HTTPS代理服务器将响应消息转发给客户端。
[0013] 为了实现上述目的,根据本发明的另一方面,提供了一种基于传输控制协议的HTTPS代理转发装置,该装置包括:第一连接单元,用于与客户端建立传输控制协议连接;接收单元,用于接收来自客户端的安全套接层连接请求,其中,安全套接层连接请求中包含客户端请求访问的源站域名;第一获取单元,用于通过解析安全套接层连接请求,获取源站域名;第二获取单元,用于通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址;第二连接单元,用于与源站网络互连协议地址对应的源站建立传输控制协议连接;第一转发单元,用于将安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0014] 进一步地,连接单元包括:判断模块,用于通过检测无证书的HTTPS代理服务器的访问端口,判断是否有客户端发送的访问请求进入访问端口,其中,访问端口是接收客户端发送的访问请求的端口,访问请求包括安全套接层连接请求;第一连接模块,用于在无证书的HTTPS代理服务器检测到有客户端发送的访问请求进入访问端口的情况下,接受客户端发送的访问请求,建立与客户端之间的传输控制协议连接。
[0015] 进一步地,客户端的安全套接层连接请求包括客户端问候消息,其中,客户端问候消息是客户端请求与无证书的HTTPS代理服务器之间建立安全套接层连接的消息,客户端问候消息中包含客户端请求访问的源站域名,第一获取单元包括:第一获取模块,用于通过解析安全套接层连接请求中包括的客户端问候消息,获取客户端问候消息中包含的服务器名字指示扩展头字段;第二获取模块,用于通过解析服务器名字指示扩展头字段,获取源站域名,第一转发单元,用于将客户端问候消息转发给源站网络互连协议地址对应的源站。
[0016] 进一步地,转发单元包括:第二连接模块,用于按照源站网络互连协议地址,建立与源站之间的传输控制协议连接;第一转发模块,用于将客户端的安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0017] 进一步地,该装置还包括:第三获取单元,用于获取源站对客户端的安全套接层连接请求的响应信息;第二转发单元,用于将响应消息转发给客户端。
[0018] 通过本发明,采用包括以下步骤的方法:无证书的HTTPS代理服务器与客户端建立传输控制协议连接;无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,安全套接层连接请求中包含客户端请求访问的源站域名;无证书的HTTPS代理服务器通过解析安全套接层连接请求,获取源站域名;无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址;无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接;无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站,解决了在进行数据包代理转发时需要大量的IP地址,导致IP资源浪费的问题,进而通过解析客户端请求消息获取源站域名,实现了通用的HTTPS代理转发功能,同时达到了节约IP资源的效果。

附图说明

[0019] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0020] 图1是现有的无证书的HTTPS代理服务器进行数据包代理转发示意图;
[0021] 图2是根据本发明的基于传输控制协议的HTTPS代理转发方法的第一实施例的流程图;
[0022] 图3是根据本发明的基于传输控制协议的HTTPS代理转发方法的第二实施例的流程图;
[0023] 图4是根据本发明的基于传输控制协议的HTTPS代理转发方法的第三实施例的流程图;
[0024] 图5是根据本发明的基于传输控制协议的HTTPS代理转发装置的优选实施例的示意图;
[0025] 图6是根据本发明的基于传输控制协议的HTTPS代理转发装置的第一实施例的结构框图;
[0026] 图7是根据本发明的基于传输控制协议的HTTPS代理转发装置的第二实施例的结构框图;以及
[0027] 图8是根据本发明的基于传输控制协议的HTTPS代理转发装置的第三实施例的结构框图。

具体实施方式

[0028] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0029] 图2是根据本发明的基于传输控制协议的HTTPS代理转发方法的第一实施例的流程图。如图2所示,该方法包括如下步骤:
[0030] 步骤S102,无证书的HTTPS代理服务器与客户端建立传输控制协议连接。
[0031] 传输控制协议(Transmission Control Protocol,简称为TCP),是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。
[0032] 建立代理服务器与客户端之间的TCP连接是三次“握手”的过程。假设src表示客户端地址,dst表示代理服务器地址。第一次握手是从src到dst,它发送了一个syn(123);第二次握手是从dst到src,它首先返回了一个ack(123+1),用以确认第一次握手的syn(123),同时也发送自己的syn(456);第三次握手是src到dst,它返回一个ack(456+1),用于确认第二次握手的syn(456)。三次“握手”是为了验证src与dst的相互存在是否可达并形成连接,这种连接是指dst与src两者之间物理介质上的逻辑通路,它是虚拟但存在的。
[0033] 需要说明的是,对于基于HTTPS的数据包代理转发,源站不将HTTPS的证书及私钥放在代理服务器上,这样代理服务器不具备对HTTPS协议解析的功能,即网民的访问内容依然是加密的,安全性可以保证。代理服务器作为中间人的角色,从TCP的层面进行TCP包的转发。需要说明的是,本发明中提到的代理服务器均为无证书的HTTPS代理服务器,为了简化说明,部分描述为代理服务器。
[0034] 优选地,代理服务器通过检测代理服务器的访问端口,判断是否有客户端发送的访问请求进入访问端口,这里的访问端口是指代理服务器接收客户端发送的访问请求的端口,访问请求包括安全套接层连接请求。如果代理服务器检测到有客户端发送的访问请求进入访问端口,则代理服务器接受客户端发送的访问请求,建立与客户端之间的传输控制协议连接。客户端与代理服务器之间实现了TCP动态建联,从而提高了代理服务器代理转发TCP数据包的效率。
[0035] 步骤S104,无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,安全套接层连接请求中包含客户端请求访问的源站域名。
[0036] 安全套接层(Secure Socket Layer,简称为SSL),用以保障在因特网上数据传输的安全,利用数据加密(Encryption)技术,可确保数据在网络传输过程中不会被截取或窃听。
[0037] SSL协议的工作流程:
[0038] 服务器认证阶段:1、客户端向服务器发送一个开始信息“Hello”,以开始一个新的会话连接;2、服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3、客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4、服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
[0039] 用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
[0040] SSL协议提供的服务主要有:认证用户和服务器,确保数据发送到正确的客户机和服务器;加密数据以防止数据中途被窃取;维护数据的完整性,确保数据在传输过程中不被改变。
[0041] 步骤S106,无证书的HTTPS代理服务器通过解析安全套接层连接请求,获取源站域名。
[0042] 代理服务器通过解析安全套接层连接请求,获知源站域名。区别于现有技术中,需要建立不同源站域名与代理服务器绑定的不同IP地址之间的映射。这种获取源站域名的方式效率更高、成本更低。
[0043] 步骤S108,无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址。
[0044] 计算机域名系统(Domain Name System或Domain Name Service,简称为DNS)服务器,由域名解析器和域名服务器组成。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中,一个域名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程称为域名解析。
[0045] 步骤S110,无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接。
[0046] 关于建立传输控制协议连接的内容在步骤S102中进行了说明,这里不再赘述。
[0047] 步骤S112,无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0048] 优选地,首先按照源站网络互连协议地址,代理服务器建立与源站之间的传输控制协议连接;然后,代理服务器将客户端的安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0049] 该实施例由于采取了以下步骤:无证书的HTTPS代理服务器与客户端建立传输控制协议连接;无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,安全套接层连接请求中包含客户端请求访问的源站域名;无证书的HTTPS代理服务器通过解析安全套接层连接请求,获取源站域名;无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址;无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接;无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站,使得无证书的HTTPS代理服务器在进行数据包代理转发时只需绑定一个IP地址,从而可以节省IP,降低成本。
[0050] 图3是根据本发明的基于传输控制协议的HTTPS代理转发方法的第二实施例的流程图。该实施例可以作为图2所示实施例的一种优选实施方式,如图3所示,该基于传输控制协议的HTTPS代理转发方法包括:
[0051] 步骤S201,无证书的HTTPS代理服务器与客户端建立传输控制协议连接。
[0052] 该步骤同步骤S102,这里不再赘述。
[0053] 步骤S202,无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,客户端的安全套接层连接请求包括客户端问候消息,客户端问候消息是客户端请求与无证书的HTTPS代理服务器之间建立安全套接层连接的消息,客户端问候消息中包含客户端请求访问的源站域名。
[0054] 根据SSL3及TLS1的原理,客户端与服务器之间建立TCP连接后,客户端会主动发起SSL连接。SSL连接过程中,客户端发起“client hello”,在SSL3及TLS1版本之后的协议中,增加了“Extension:server_name”扩展头,其中包含了“Server Name Indication extention”(后简称SNI),该扩展字段中包含“Server Name”字段,其中,明文说明了该HTTPS请求所要访问的源站的域名。下面给出了客户端问候消息“Client Hello”中SNI扩展头字段的程序说明。
[0055]
[0056] 需要说明的是,在最初的SSL2协议中并不包含SNI扩展字段,而且某些低版本的浏览器(如IE6等)也不支持该扩展字段。只有在使用新版本的SSL协议,并且客户端请求在“Client Hello”中均带有该扩展字段的情况下,代理服务器才会有效识别出SNI。
[0057] 步骤S203,无证书的HTTPS代理服务器通过解析安全套接层连接请求中包括的客户端问候消息,获取客户端问候消息中包含的服务器名字指示扩展头字段。
[0058] 服务器名字指示扩展头字段即“Server Name Indication extention”,简称为SNI扩展头字段。
[0059] 步骤S204,无证书的HTTPS代理服务器通过解析服务器名字指示扩展头字段,获取源站域名。
[0060] 获取SNI扩展头字段中包含的“Server Name”字段,其明文说明了该HTTPS请求所要访问的源站的域名。
[0061] 步骤S205,无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址。
[0062] 该步骤同步骤S108,这里不再赘述。
[0063] 步骤S206,无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接。
[0064] 该步骤同于步骤S110,这里不再赘述。
[0065] 步骤S207,无证书的HTTPS代理服务器将客户端问候消息转发给源站网络互连协议地址对应的源站。
[0066] 该步骤同步骤S112,这里不再赘述。
[0067] 该实施例由于采用了如下步骤:无证书的HTTPS代理服务器与客户端建立传输控制协议连接;无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,客户端的安全套接层连接请求包括客户端问候消息;无证书的HTTPS代理服务器通过解析安全套接层连接请求中包括的客户端问候消息,获取客户端问候消息中包含的服务器名字指示扩展头字段;无证书的HTTPS代理服务器通过解析服务器名字指示扩展头字段,获取源站域名;无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址;无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接;无证书的HTTPS代理服务器将客户端问候消息转发给源站网络互连协议地址对应的源站,使得无证书的HTTPS代理服务器通过解析SNI获取源站域名,实现了利用一个IP地址可以服务多个源站,从而服务的源站的个数不再依赖于绑定的IP地址的个数,降低了运营成本。
[0068] 图4是根据本发明的基于传输控制协议的HTTPS代理转发方法的第三实施例的流程图。该实施例可以作为图2所示实施例的一种优选实施方式,如图4所示,该基于传输控制协议的HTTPS代理转发方法包括:
[0069] 步骤S301,无证书的HTTPS代理服务器与客户端建立传输控制协议连接。
[0070] 该步骤同步骤S102,这里不再赘述。
[0071] 步骤S302,无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,安全套接层连接请求中包含客户端请求访问的源站域名。
[0072] 该步骤同步骤S104,这里不再赘述。
[0073] 步骤S303,无证书的HTTPS代理服务器通过解析安全套接层连接请求,获取源站域名。
[0074] 该步骤同步骤S106,这里不再赘述。
[0075] 步骤S304,无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址。
[0076] 该步骤同步骤S108,这里不再赘述。
[0077] 步骤S305,无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接。
[0078] 该步骤同步骤S110,这里不再赘述。
[0079] 步骤S306,无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0080] 该步骤同步骤S112,这里不再赘述。
[0081] 步骤S307,无证书的HTTPS代理服务器获取源站对客户端的安全套接层连接请求的响应信息。
[0082] 在基于TCP的HTTPS代理转发过程中,在代理服务器将HTTPS数据转发给源站之后,客户端与源站之间将进行后续的安全套接字协议协商及安全证书校验,代理服务器对加密内容进行转发(不进行解析)。在安全套接字验证通过后,客户端将可以发起正常的HTTPS请求。步骤S308,代理服务器将响应消息转发给客户端。
[0083] 需要注意的是,代理服务器不再对后续的内容进行解析,而只是实现对客户端与源站HTTPS服务器进行TCP代理转发的功能。
[0084] 该实施例由于采用了如下步骤:无证书的HTTPS代理服务器与客户端建立传输控制协议连接;无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,安全套接层连接请求中包含客户端请求访问的源站域名;无证书的HTTPS代理服务器通过解析安全套接层连接请求,获取源站域名;无证书的HTTPS代理服务器通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址;无证书的HTTPS代理服务器与源站网络互连协议地址对应的源站建立传输控制协议连接;无证书的HTTPS代理服务器将安全套接层连接请求转发给源站网络互连协议地址对应的源站;无证书的HTTPS代理服务器获取源站对客户端的安全套接层连接请求的响应信息;无证书的HTTPS代理服务器将响应消息转发给客户端,在代理服务器不具备HTTPS协议解析功能的条件下,实现了客户端与源站之间数据包的代理转发,加快了客户端与源站之间的数据传输速度;同时,代理服务器在只具有一个IP地址的情况下,可以在成本没有提高的前提下实现客户端与多个源站之间的数据代理转发。
[0085] 图5是根据本发明的基于传输控制协议的HTTPS代理转发方法的优选实施例的示意图。如图5所示,该基于传输控制协议的HTTPS代理转发方法包括:
[0086] 代理服务器20上只需设置一个IP,且IP地址为IP1。假设HTTPS源站40的域名为www.A.com,HTTPS源站50的域名www.B.com。事先指定www.A.com、www.B.com分别与IP1的对应关系。网民10发出HTTPS访问请求,代理服务器20通过解析SNI,获取网民要访问的源站域名。代理服务器20查询DNS服务器,获取与源站域名对应的IP地址,从而代理服务器20将数据包转发给对应该IP地址的源站。从图中可以看到,代理服务器20不需借助两个IP地址,便可以实现为两个源站进行TCP数据包的代理转发功能。
[0087] CDN系统具备网民就近定位的功能,比如,北京网民通常访问北京的服务器、上海网民访问上海的服务器,所以需要在全国不同的城市部署代理服务器。如果按照现有方法,一个代理服务器便需绑定多个IP,这将造成IP资源的严重浪费。而在本方法中,在可以成功解析出SNI的前提下,一个代理服务器只需一个IP就可以实现服务多个源站。
[0088] 例如:全国50个节点(代理服务器),服务的源站个数为10,那么现有方法就需要至少500个IP;而在本方法中,只需要50个IP即可。可见,节省IP资源是本方法的一个有效结果。
[0089] 需要说明的是,本发明实施例的基于传输控制协议的HTTPS代理转发装置可以用于执行本发明实施例所提供的基于传输控制协议的HTTPS代理转发方法,本发明实施例的基于传输控制协议的HTTPS代理转发方法也可以通过本发明实施例所提供的基于传输控制协议的HTTPS代理转发装置来执行。
[0090] 图6是根据本发明的基于传输控制协议的HTTPS代理转发装置的第一实施例的结构框图。如图6所示,该装置结构包括:
[0091] 第一连接单元22,用于与客户端建立传输控制协议连接。
[0092] 优选地,该单元可以包括判断模块和第一连接模块,判断模块和第一连接模块分别为:
[0093] 判断模块,用于通过检测无证书的HTTPS代理服务器的访问端口,判断是否有客户端发送的访问请求进入访问端口,其中,访问端口是接收客户端发送的访问请求的端口,访问请求包括安全套接层连接请求。
[0094] 第一连接模块,用于在无证书的HTTPS代理服务器检测到有客户端发送的访问请求进入访问端口的情况下,接受客户端发送的访问请求,建立与客户端之间的传输控制协议连接。
[0095] 接收单元24,用于接收来自客户端的安全套接层连接请求,其中,安全套接层连接请求中包含客户端请求访问的源站域名。
[0096] 第一获取单元26,用于通过解析安全套接层连接请求,获取源站域名。
[0097] 该单元通过解析安全套接层连接请求,获知源站域名。区别于现有技术中,需要建立不同源站域名与代理服务器绑定的不同IP地址之间的映射。该单元工作效率更高、成本更低。
[0098] 第二获取单元28,用于通过查询计算机域名系统服务器获取与源站域名对应的源站网络互连协议地址。
[0099] 第二连接单元210,用于与源站网络互连协议地址对应的源站建立传输控制协议连接。
[0100] 第一转发单元212,用于将安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0101] 优选地,转发单元可以包括:第二连接模块,用于按照源站网络互连协议地址,建立与源站之间的传输控制协议连接;第一转发模块,用于将客户端的安全套接层连接请求转发给源站网络互连协议地址对应的源站。
[0102] 本实施例提供的基于传输控制协议的HTTPS代理转发装置包括:第一连接单元22;接收单元24;第一获取单元26;第二获取单元28;第二连接单元210;第一转发单元212,通过该装置使得在进行数据包代理转发时只需绑定一个IP地址,从而可以节省IP,降低成本。
[0103] 图7是根据本发明的基于传输控制协议的HTTPS代理转发装置的第二实施例的结构框图。该实施例可以作为图6所示实施例的一种优选实施例。如图7所示,该装置结构包括:
[0104] 连接单元22、接收单元24、第一获取单元26、第二获取单元28、第二连接单元210和第一转发单元212,其中,第一获取单元26还可以包括第一获取模块32和第二获取模块34。其中,连接单元22、第二获取单元28和第二连接单元210与图4所述实施例相同,这里不再赘述。接收单元24、第一获取模块32、第二获取模块34和第一转发单元212分别为:
[0105] 接收单元24,用于无证书的HTTPS代理服务器接收来自客户端的安全套接层连接请求,其中,客户端的安全套接层连接请求包括客户端问候消息,客户端问候消息是客户端请求与无证书的HTTPS代理服务器之间建立安全套接层连接的消息,客户端问候消息中包含客户端请求访问的源站域名。
[0106] 接收单元24接收SSL连接过程中客户端发起的“client hello”,在SSL3及TLS1版本之后的协议中,“client hello”增加了“Extension:server_name”扩展头,其中包含了“Server Name Indication extention”(后简称SNI),该扩展字段中包含“Server Name”字段,其中,明文说明了该HTTPS请求所要访问的源站的域名。例如:www.tenpay.com。
[0107] 第一获取模块32,用于通过解析安全套接层连接请求中包括的客户端问候消息,获取客户端问候消息中包含的服务器名字指示扩展头字段。
[0108] 服务器名字指示扩展头字段即“Server Name Indication extention”,简称为SNI扩展头字段。
[0109] 第二获取模块34,用于通过解析服务器名字指示扩展头字段,获取源站域名。
[0110] 第二获取模块34获取SNI扩展头字段中包含的“Server Name”字段,其明文说明了该HTTPS请求所要访问的源站的域名。
[0111] 第一转发单元212,用于将客户端问候消息转发给源站网络互连协议地址对应的源站。
[0112] 本实施例提供的基于传输控制协议的HTTPS代理转发装置包括:连接单元22、接收单元24、第一获取单元26、第二获取单元28、第二连接单元210和第一转发单元212,其中,第一获取单元26还可以包括第一获取模块32和第二获取模块34。通过该装置,实现了通过解析SNI获取源站域名,利用一个IP地址可以服务多个源站,从而服务的源站的个数不再依赖于绑定的IP地址的个数,降低了运营成本。
[0113] 图8是根据本发明的基于传输控制协议的HTTPS代理转发装置的第三实施例的结构框图。该实施例可以作为图6所示实施例的一种优选实施例。如图8所示,该装置结构包括:
[0114] 第一连接单元22、接收单元24、第一获取单元26、第二获取单元28、第二连接单元210、第一转发单元212、第三获取单元214和第二转发单元216。其中,第一连接单元22、接收单元24、第一获取单元26、第二获取单元28、第二连接单元210和第一转发单元212与图4所述相同,这里不再赘述。第三获取单元214和第二转发单元216分别为:
[0115] 第三获取单元214,用于获取源站对客户端的安全套接层连接请求的响应信息。
[0116] 在该基于传输控制协议的HTTPS代理转发装置将数据包转发给源站之后,源站的HTTPS服务器将对该访问请求进行响应,并进行后续的SSL证书交换及校验过程。
[0117] 第二转发单元216,用于将响应消息转发给客户端。
[0118] 需要注意的是,该基于传输控制协议的HTTPS代理转发装置不再对后续的内容进行解析,而只是利用第二转发单元216实现对客户端与源站服务器进行TCP代理转发的功能。
[0119] 本实施例提供的基于传输控制协议的HTTPS代理转发装置包括:第一连接单元22、接收单元24、第一获取单元26、第二获取单元28、第二连接单元210、第一转发单元212、第三获取单元214和第二转发单元216。通过该装置,实现了客户端与源站之间数据包的代理转发,加快了客户端与源站之间的数据传输速度;同时,在该装置只具有一个IP地址的情况下,可以在成本没有提高的前提下实现客户端与多个源站之间的HTTPS数据代理转发。
[0120] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0121] 以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。