2012-04-11 42 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 
     /-------\ 
相關問題