首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非MiTM反向SSL

非MiTM反向SSL
EN

Security用户
提问于 2013-10-02 17:42:04
回答 2查看 226关注 0票数 1

是否存在非MiTM反向SSL代理?还是所有执行SSL映射的代理都会解码,然后重新编码HTTPS通信量?

如果是这样,并且我想映射https://mypublicdomain.com -> https://myprivatedomain.com,我如何构建一个只有myprivatedomain.com的服务器才能解密HTTPS请求的网络。

EN

回答 2

Security用户

回答已采纳

发布于 2013-10-02 17:58:21

关于SSL/HTTPS,有两个基本事实需要了解:

  • HTTPS是HTTPS。特别是,URL不存在于SSL级别。从外部看,在不解密内容的情况下,可以看到“这是SSL”,也可以看到“这是用于主机www.example.com",而不是”这是用于URL https://www.example.com/foobar/index.html“。只有SSL端才能发现"foobar/index.html“,在那里进行解密。在您的例子中,这意味着任何重定向都必须是全部或无:完整的站点层次结构,而不是其子树。
  • HTTPS客户端( Web浏览器)坚持在服务器证书中查找它所期望的服务器名称,即URL中的服务器名称。在您的示例中,由于您希望客户端看到以https://mypublicdomain.com开头的URL,所以服务器证书将需要包含mypublicdomain.com。因为您希望在私有服务器上进行解密,所以这意味着私有服务器必须使用带有公共服务器名称的证书。而且,由于您希望仅在私有服务器上进行解密,因此相应的私钥必须不为公共服务器所知。底线是,私有服务器拥有并控制一个具有另一个服务器名称的证书,而另一个服务器不控制相应的私钥。通常,认证机构称之为“欺诈”,并努力避免这种情况发生。因此,只有当您拥有和控制这两台服务器时,您才能做到这一点,并且您试图实施的隔离是一些与安全相关的隔离,而不是所有权差异。

所以你想要做的事情只有当你:

  1. 接受整个站点的代理,并将代理降到IP数据包或TCP连接的级别。实际上,当发生这种情况时,我们通常说这是虚拟托管,而不是代理(这可以与SSL一起使用,例如,请参见,只要客户端支持服务器名称指示 TLS扩展)。
  2. 以某种方式找到一种方法,使证书中包含公共名称,但私钥仅为私有服务器所知。如果你两者都拥有,那就很容易了,这取决于你自己。如果公共服务器是一些主机提供商,而您只是一个客户,那么这可能是困难的。
票数 2
EN

Security用户

发布于 2013-10-03 02:55:27

您正在讨论透明套接字代理与非透明协议代理之间的区别。

由于域名( SSL检查)在与IP(透明套接字代理使用)不同的级别上操作,您可以代理整个主机(用于给定端口)。但是,正如Thomas提到的,您不能代理特定的URL子集,因为它封装在SSL层中。

您可以嵌套(隧道) SSL层,每个层都将/反向代理重定向/反向代理到不同的服务器--但普通浏览器不支持这一点。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/43243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档