第二节:如何代理HTTPS请求

    先简单说下SSL/TLS,SSL/TLS协议是为了解决这三大风险而设计的

    基于SSL/TLS设计的第(1)点,可知代理是无法像解析单纯的http协议那样解析https的报文,从而也无法像”代理”http那样“代理”https。在实际网络中,每个网络请求都会经过各种个样的网络节点,代理也是其中很常见的一种。https请求如何通过这些http代理节点连接到目标服务器?为了解决这类问题,http tunnel(隧道)技术就派上了用场。

    HTTP Tunnel(隧道)

    http和https关于分层的对比

    HTTP Tunnel的建立过程

    第二节:如何代理HTTPS请求 - 图1

    HTTP Tunnel的建立步骤

    第一步:客户端像http代理发起CONNECT请求。

    第二步:http代理接收到CONNECT请求后与abc.com的433端口建立tcp连接。

    这样一个http隧道就建立成功了。

    代码实现:

    完整源码:

    npm script运行方式

    设置完代理后,现在可以用浏览器尝试打开https的链接了。

    第三节:HTTPS数字证书和数字证书链