加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

被动扫描代理的那些事

发布时间:2021-03-23 09:46:22 所属栏目:外闻 来源:互联网
导读:始之前我先来一波灵魂6问,读者可以先自行思考下,这些问题将是本文的关键点,并将在文章中一一解答: http_proxy 和 https_proxy 有什么区别? 为什么需要信任证书才能扫描 HTTPS 的站点? 代理 HTTPS 的站点一定需要信任证书吗? 代理的隧道模式下如何区分是

始之前我先来一波灵魂6问,读者可以先自行思考下,这些问题将是本文的关键点,并将在文章中一一解答:

  • http_proxy 和 https_proxy 有什么区别?
  • 为什么需要信任证书才能扫描 HTTPS 的站点?
  • 代理 HTTPS 的站点一定需要信任证书吗?
  • 代理的隧道模式下如何区分是不是 TLS 的流量?
  • 代理应如何处理 Websocket 和 HTTP2 的流量?
  • 是否应该复用连接以及如何复用连接?

知识储备

我们在本地做开发时,有时会需要启动一个 HTTPS 的服务,通常使用 OpenSSL 自行签发证书并在系统中信任该证书,然后就可以正常使用这个 TLS 服务了。如果没有信任,浏览器就会提示证书不信任而无法访问,简言之,我们需要手动信任自行签发的证书才可以正常访问配置了该证书的网站。那么问题来了,为什么平日访问的那些网站都不需要信任证书呢?打开 baidu.com 查看其证书发现这里其实是一个证书链:


 

且只要信任了 RootCA 由 RootCA 签发的包括其下级签发的证书都会被信任。而 Global Sign RootCA等是一些默认安装在系统和浏览器中的根证书。这些证书由一些权威机构来维护,可以确保证书的安全和有效性。而内置的这些根证书就允许我们访问一些公共的网站而无需手动信任证书了。

再来说下与 HTTP 代理相关的两个环境变量: HTTP_PROXY 和 HTTPS_PROXY,有的程序使用的是小写的,比如 curl。对于这两个变量,约定俗称的规则如下:

  • 如果目标是 HTTP 的,则使用 HTTP_PROXY 中的地址
  • 如果目标是 HTTPS 的,则使用 HTTPS_PROXY 中的地址
  • 如果对应的环境变量为空,则不使用代理

这两个环境变量的值是一个 URI,常见的有如下三种形式:

  • http://127.0.0.1:7777
  • https://127.0.0.1:7777
  • socks5://127.0.0.1:7777

抛开与主题无关的 socks 不管,这里又有一个 http 和 https,别晕,这里的 http 和 

(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读