2012-02-29 42 views
5

我正在寫一個.pac文件,用於不帶越獄的iOS5,但我在匹配以「https」開頭的url(例如:https://test.com)時感到麻煩。PAC文件中的HTTPS

這裏是我的腳本:

function FindProxyForURL(url, host) { 
    if (shExpMatch(url, "https://*")) return "PROXY 123.123.123.123"; 
    return 'DIRECT'; 
} 

如果我符合 「https://test.com」,我怎麼能返回 「https://123.123.123.123」 的網址是什麼?

回答

1

在不破壞端到端安全性的情況下,您無法代理HTTPS協議,這是其唯一的區別特徵。你的匹配「不起作用」的原因是你的PAC文件被HTTPS忽略。

通過HTTPS在瀏覽器和設備上代理之間路由流量也毫無意義,無論技術上是否可行。我想這是因爲安全原因而變得不可能的(所以用戶不會被愚弄,認爲流量不安全),但我沒有調查過。

+3

這不是真的,HTTPS不會忽略PAC文件 - 通過使用CONNECT方法可以安全地代理HTTPS *,HTTPS *本質上只是將來自客戶端計算機的TCP流通過代理中繼到遠程計算機。連接仍處於加密狀態,代理無法以純文本查看任何通信。 – Johnny 2016-06-28 18:28:25

+0

對。 PAC文件不被忽略,對於HTTPS目標,使用CONNECT方法。在這種情況下,代理服務器不知道服務器和客戶端之間的通信。添加我的評論,因爲接受的答案傳播錯誤的信息。 – 2016-06-29 07:36:10

+0

感謝您的更新。不幸的是,我無法刪除這個答案,因爲它被接受。 – tripleee 2016-06-29 07:44:55

0

使用此:

if (shExpMatch(url, "https:**"))

這應該修復它。