2012-04-11 11 views
2

首先,我想说明的是,我不是在谈论访问使用https传递的原始服务器上的内容,这可以使用模块mod_proxy_connect完成。是否有可能在代理和用户之间使用SSL加密的转发代理?

我想要的是客户端和代理之间的安全连接,当请求的源实际上是由不安全的标准http服务器提供服务时。

我使用的是Apache 2.2,并且还希望使这可能与Apache如果工作。

我嗅到使用Wireshark的一些要求,并指出:

网址http://example.com/file looksl IKE在此的常用的http:

到原始服务器的连接上

GET /file HTTP 1.1 
Host: example.com 

注主机信息被从实际的请求中剥离出来并且主机头被提供(可以在命名虚拟主机中的服务器端处理)。

当请求通过代理服务器,它看起来略有不同:

GET http://example.com/file HTTP 1.1 
Host: example.com 

注意,请求行现在实际上包含了完整的URL包括协议和:

到代理服务器的连接上主机名。 主机头可能是冗余的,如果我正确读取RFC,它是HTTP 1.1所要求的总线。

因此,我想设置一个侦听端口443的Apache Web服务器,启用带有SSL引擎和证书的虚拟主机,并且不将其绑定到任何主机名。

我认为应该得到apache来说话ssl,但是,但是证书的通用名称将不匹配连接到proxys服务器ip地址的主机。

我想甚至可能与当前的标准,如果是的话我该怎么做?

+0

这或多或少同样的问题[这一个](http://security.stackexchange.com/q/13662/2435)几个小时前由Security.SE上的其他人询问。 – Bruno 2012-04-11 15:40:05

回答

1

当然,这就是HTTPS代理。

客户端通过SSL连接到代理,将命令发送到代理文本。

也可以使用HTTP连接以建立“内部”的SSL连接HTTPS连接HTTPS代理,虽然不是所有的客户端都支持这一点:

HTTPS connection over HTTPS proxy 
client   proxy   server 
ssl \-------/ ssl 
connect---------200 OK 
ssl \---------------------------/ ssl 
data-------------------------------data 
    /---------------------------\ 
     /-------\ 



HTTP connection over HTTPS proxy 
client   proxy   server 
ssl \-------/ ssl 
GET http://server/ -> 
         GET/
         Host: server -> 
         <---------OK, data 
<--------------OK, data 
     /-------\ 
相关问题