2014-01-29 134 views
0

我們希望在我們的公司代理服務器後面的node.js客戶端和互聯網中的node.js服務器(我們也控制它)之間建立TLS加密連接。通過代理的TLS連接

我對這個問題感到困惑,我們如何通過代理使用TLS來保持基於證書的安全方法?

回答

1

TLS代理是透明的。客戶端發送CONNECT請求,其中包含目標主機名和端口,然後代理創建一個到該主機的新TCP連接,之後除了在客戶端和服務器連接之間移動數據包之外別無其他。

所以從客戶端的角度來看,客戶端從代理中獲取的證書就是服務器發送的字節。

在服務器端,您將看到的IP是代理的IP,而不是客戶端的IP。因此,您不應該在客戶端使用服務器證書,因爲證書中的CN和IP /反向查找的主機名稱不匹配。但是,如果您使用客戶端證書,則代理將再次將其傳遞到服務器而不進行任何修改 - 因此,如果您在服務器上執行某些操作(例如,由CA信任的此客戶端證書籤名),則一切正常。