【问题标题】:proxy server which can handle both http and https requests - java可以处理 http 和 https 请求的代理服务器 - java
【发布时间】:2012-04-22 13:57:31
【问题描述】:

我在这里寻找可以处理用 java 编写的 http 和 https 请求的代理服务器的资源或示例代码。我搜索了谷歌,发现了很多关于如何处理 http 请求而不是 https 的数据。

【问题讨论】:

  • 用例是什么? Stephen C 提供了一个通用问题的正确答案。您是否在谈论 SSL 卸载的需要?您的网络服务器技术不支持加密的情况?
  • 您是在寻找可以在大多数浏览器中配置的代理服务器(我称之为“普通”HTTP/HTTPS 代理),还是能够查看 HTTPS 的东西也请求(我称之为“MITM 代理”),这将要求浏览器允许自己被愚弄以信任其证书?

标签: java ssl proxy


【解决方案1】:

代理无法处理 HTTPS,但仍提供端到端安全性。无法使用构建 HTTPS 的 SSL/TLS。

并且不提供端到端安全性的代理仅具有有限的实用性。所以我对你找不到现有的实现并不感到惊讶。

【讨论】:

  • 这取决于问题是关于什么的:它是作为一个“MITM 代理”来查看请求还是一个普通的 HTTPS 代理(它不会,并保持端到端-结束安全)。两者都存在。
  • 嗯,我一直认为“普通”代理是可以/可以执行缓存和过滤等操作的代理。为此,代理必须是中间人,因为它必须查看请求和响应以实现该功能。
  • 我将所有主要浏览器配置为这样做时使用的 HTTP(S) 代理的行为称为“正常”。如果您在 Firefox 或 IE 中配置“普通”HTTP 代理服务器(例如),它将与 https:// URI 的代理建立纯 HTTP 连接,并使用 CONNECT 动词连接到主机名和端口URI。尽管据我所知从未最终确定,但这是用户代理多年来通过 HTTP 代理建立https:// 连接时使用的规范:tools.ietf.org/html/draft-luotonen-web-proxy-tunneling-01
【解决方案2】:

我假设您在这里需要一个普通的 HTTPS 代理,这是一个不会查看请求而只是在用户代理使用 HTTP CONNECT 后将所有流量中继到实际 HTTPS 服务器的代理方法。这就是浏览器通常使用 HTTP 代理服务器处理 HTTPS 请求的方式。

我没试过,不过你可以看看 Jetty 和its ConnectHandler。

【讨论】:

    猜你喜欢
    • 2020-03-23
    • 2020-05-03
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    相关资源
    最近更新 更多