业界动态
使用nginx作为HTTPS正向代理服务器(七层透传代理、中间人代理)
2024-10-31 17:14

【前言】

在讲解nginx正向代理https之前,我们先来解答几个小疑问。

使用nginx作为HTTPS正向代理服务器(七层透传代理、中间人代理)

1、nginx是什么

       Java同学肯定知道apache服务器,一个很牛,但是也很庞大的web服务器。能当web服务器的不仅仅只有apache,还有一个小巧轻快,高性能的家伙,它就是nginx。

       百度百科的解释是:nginx是一个高性能的http和反向代理服务器,同时也提供了imap/pop3/smtp服务。其特点是占有内存少,并发能力强。在咱们大中华大陆地区,百度、京东、新浪、网易、腾讯、淘宝都用了nginx,可见它有多受大家的欢迎。

       大家都知道它是一个反向代理服务器,其实它也可以作为一个正向代理服务器。虽然nginx官方并没有提供http connect方法,但是nginx扩展性特别好,有大佬造出了ngx_http_proxy_connect_module模块(点击可以去到对应的github)来支持http connet方法,如此一来,它就可以正向代理http以及https了。本文着只讲nginx正向代理https,其余的等有时间再更新吧。

2、什么是nginx正反向代理

正向代理:客户发送请求给代理服务器,代理服务器代替客户把请求发送给服务器,即正向代理是代理的客户端。

反向代理:代理服务器将收集到的请求分发给服务器,服务器处理完请求将结果返回给代理服务器,再由代理服务器将结果返回给客户端,即反向代理是代理的服务端。

详细讲解nginx正反向代理可以看这里:看了这篇你就彻底了解nginx的正方向代理啦~

3、https是什么

       https其实就是http+tls/ssl的简称,tls从某种意义来说就是ssl3.1版本,ssl是在应用层和传输层中间加的一个套接层,即加密在传输层和应用层之间传输的数据。详情请点击这里:看完这篇你就了解HTTPS、TLS、SSL啦~

4、https建立连接过程是怎样的

       客户端发起https连接--->服务端发送证书-->客户端验证服务端发来的证书(验证证书-->生成随机数-->生成握手信息hash值)-->服务端接收随机数加密的信息-->服务端验证握手信息是否被篡改-->客户端验证服务端发送回来的握手信息,完成握手

详细连接过程可以看这里:HTTPS建立连接详细过程

5、为什么需要https代理

       了解完https连接过程后会你可能有一个疑问,我客户端为什么需要一个nginx的代理服务器去正向代理https呢?我输入了域名后,直接去DNS服务器获取服务端IP,然后直接连接它的443端口不就行了吗?对,你说的都对,但是,问题就出在直接连接它的443端口”,如果我不能直接连接它的443端口呢?甚至,我如果连Ping都Ping不通服务端呢?那怎么办?这时候,你就需要一台能够代替你,去连接服务端的服务器了。

       这个代理服务器,目前常见的有用apache搭建的代理服务器、用nginx搭建的代理服务器。今天这篇文章我只讲nginx代理服务器,这俩货到底有什么区别,谁更合适什么场景,之后有时间再进行详细讲解吧。

【正文】

HTTPS/HTTP的正向代理从客户端是否有感知可以分为以下两种

普通代理客户端在浏览器自己配置代理的端口和地址。

透明代理客户端无需做代理设置,于客户而已是无感的,企业中的web网关设备就是如此。

HTTPS/HTTP的正向代理从代理服务器是否需要解密HTTPS可以分为以下两种

隧道代理(透传只在TCP协议之上进行透传HTTPS流量,并不对流量进行解密分析,客户端相当于直接和目的服务器进行TLS/SSL交互。

中间人代理看到中间人我瞬间联想到了中间人攻击,这个原理也可以说类似吧,代理服务器将客户端发来的HTTPS流量进行解密,对客户端利用自签名证书完成TLS/SSL握手,这个时候代理服务器拿到了客户端访问服务端的HTTPS流量内容,再和服务端完成正常的TLS/SSL交互。

:这种情况客户端在TLS握手阶段实际上是拿到的代理服务器自己的自签名证书,证书链的验证默认不成功,需要在客户端信任代理自签证书的Root CA证书。所以过程中是客户端有感的。如果要做成无感的透明代理,需要向客户端推送自建的Root CA证书,在企业内部环境下是可实现的。

n       ginx代理https的方式都属于透传,也就是透明传输,不对传输的流量(数据包)进行解密。

http connect 隧道

       七层解决方案是在应用层来进行解决的,并不存在对数据包进行解密的一个过程。它需要通过http connect来建立一个隧道(通俗理解就是一个指定的用来连接的通道,这里需要在客户端配置https代理服务器的ip和端口

具体连接过程如下

1、客户端给代理服务器发送http connect请求,并将要访问的url一并发给代理服务器

2、代理用客户端发来的url去到dns服务器找到对应的ip,连上443端口

3、代理连上服务端443端口后,给客户端发送一个HTTP/1.1 200 Connection Established(即http200响应

4、此时客户端和代理服务器成功建立一个http connect隧道

5、客户端发送https流量给到代理服务器,代理服务器直接将此https流量直接发送给到服务器

至此,整个七层的http connect隧道就建立成功,换句话说就是成功搭建了nginx正向代理https服务。

流程图如下

nginx正向代理https七层方案配置

       在前言已跟大家介绍,nginx官方并未提供http connect方法,但是github上已有相关模块,可以自行下载安装ngx_http_proxy_connect_module。

【添加gx_http_proxy_connect_module模块步骤】

对于已经编译安装完的nginx环境加入此模块步骤如下

【七层方案nginx.conf文件配置】

【中间人代理】

       从传输层透传应用层的流量,那么可不可以不建立http connect,将域名直接dns解析到代理服务器呢?随着时代的变迁,技术的发展,nginx的更新,这一切当然是可以的~

       nginx自战斗民族的老铁2004年发布以来,一直在不断的进步,到1.9.0版本开始支持ngx_stream_ssl_module模块了,编译安装并不会默认安装,需要带上--with-stream,yum会默认安装这个模块。

       那么这个时候问题来了,没了http connect,要怎么做呢?首先,在内网中,将dns域名解析到代理服务器上,这个时候你会问,解析到代理服务器上?客户端发送的可是https流量,代理没有ca证书,怎么解开?怎么可能读取https里面的信息呢?这个问题问的非常有水平,作为一名还未入流的白帽子,第一想法就是,既然没有,那就造一个噻。代理服务器和客户端商量好,你只要信任我的证书,直接把https流量发送给我,我帮你(假装是你)传达给你想传达但又没法直接传达的人(即服务端)。至于如何自建ca证书,请移步这里Openssl 自签CA根证书、SSL证书(单域名签发)和Openssl自签CA根证书、SSL证书(多域名签发

具体流程请看下图

                                                                         【中间人代理https配置】

    以上就是本篇文章【使用nginx作为HTTPS正向代理服务器(七层透传代理、中间人代理)】的全部内容了,欢迎阅览 ! 文章地址:http://lianchengexpo.xrbh.cn/news/9727.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://lianchengexpo.xrbh.cn/mobile/ , 查看更多   
最新新闻
刘畊宏直播2小时收入120万,打赏的榜一大哥都是什么人?
说起最近这段时间直播界最火的网红明星,非“健身达人”刘畊宏莫属,从今年4月初开始,全国各地都有人因疫情被封控,而刘畊宏的
国家要普涨工资,地方正狂卷就业,让大家挣钱最重要
最近,有一个重要的文件和每个人的“钱袋子”息息相关。那就是《中共中央、国务院关于实施就业优先战略促进高质量充分就业的意见
实探债务危机中的柔宇科技:生产基地半小时只看到3个人,手机业务已停摆
2023年是折叠屏手机爆发年,诸多柔性屏供应商、手机厂商吃到红利。然而面对这样的好光景,柔宇科技却只剩一片残局。曾经凭借柔性
今日头条iphone最新版特色
今日头条ios2021最新版是专为苹果手机用户打造的头条新闻资讯应用,打开今日头条,即可知道今天发生了哪些大事,还有最新的娱乐
一张床垫用N年,弹簧早就疲软了,撑不住儿童发育的脊梁,赶紧换!
你家孩子睡的弹簧床垫陪伴TA多少年了?尤其是弹簧床垫,通常睡上3~5年的儿童床垫,金属弹簧就会呈现不同程度的疲软,这将严重影
增长黑客,创业公司用户增长的秘籍
增长黑客读了范冰的《增长黑客》,启发太多。正如作者在前言中所说,确实是处处均是干货,书里脉络清晰,是本难得的好书。增长黑
实用的高考化学考试答题思路与技巧
高考的化学考试答题要联系所学习的知识,找到知识与问题之间的结合点,确定解题的方案,这才是解题的关键。下面是小编为大家整理
小红书情人节营销指南
│前言│小红书作为女生的口袋百科指南,提供了各种各样的节日攻略内容,同时引导着用户去享受更好的生活,而在即将到来的214情
云南SEO优化如何让描述中出现地址呢?
在搜索引擎优化(SEO)的世界中,整合关键信息,如地址,到网页描述中是提升网站在搜索引擎结果页面上的可见性和点击率的关键策
实用贴!海关统计数据查询攻略
海关统计数据查询攻略为便于社会公众查询和使用海关进出口货物贸易统计数据(以下简称海关统计数据),特编制本查询攻略。一定期
本企业新闻
推荐企业新闻

点击拨打: