我試圖圍繞ssl隧道過程,這是由一個HTTP代理從客戶端接收CONNECT方法後執行的。HTTP代理SSL隧道繼電器詳細信息
東西,我似乎無法找到或文檔,博客,RFC的理解:
1)建立隧道時,從客戶端代理和代理目的地兩個獨立的連接,或者僅僅是兩個連接一個也是一樣的?例如。客戶端代理和另一個代理目標之間是否存在tcp握手?
2)什麼時候開始ssl握手客戶端定位哪個節點(ip地址/主機名)?代理或目標主機?由於ssl需要點對點連接才能進行身份驗證,因此我的感覺告訴我它應該是目標主機。但是再次說明這是沒有意義的,因爲目標主機不能(直接)從客戶端角度訪問(因此是代理)。
我真的不明白客戶端如何執行與目標主機的ssl握手,因爲該節點應該是從客戶端角度不可路由的。代理是否執行路由器的功能?我似乎沒有得到這個:/ – Marc
@Marc:引用自己:*當代理簡單地轉發數據*。是的,代理轉發數據但不是,它不起路由器的作用。當代理在會話層轉發數據包內容時,路由器在網絡層轉發數據包,請參見[OSI模型](https://en.wikipedia.org/wiki/OSI_model)。但是對於TLS握手,只有數據包內容是相關的。 –
好吧,我想我現在明白了。因此,當開始ssl握手時,客戶端將clienthello消息放在client-proxy之間已經打開的tcp cxn上。一旦它到達代理服務器,它就會在已經打開的代理目標之間的tcp罐中繼它。正確? – Marc