Fiddler、Charles抓取解密HTTPS請求的原理


TLS是一種端到端的傳輸層加密協議,是HTTPS協議的一個組成部分。訪問HTTPS站點時,HTTP請求、響應都通過TLS協議在瀏覽器和服務器之間加密傳輸,並且通過數字證書技術保證數據的保密性和完整性;任何“中間人”、包括代理服務器都只能轉發數據,而無法竊聽或者篡改數據。

要抓取HTTPS流量的明文內容,Fiddler必須解密HTTPS流量。但是,瀏覽器將會檢查數字證書,並發現會話遭到竊聽。為了騙過瀏覽器,Fiddler通過使用另一個數字證書重新加密HTTPS流量。Fiddler被配置為解密HTTPS流量后,會自動生成一個名為DO_NOT_TRUST_FiddlerRoot的CA證書,並使用該CA頒發每個域名的TLS證書。若DO_NOT_TRUST_FiddlerRoot證書被列入瀏覽器或其他軟件的信任CA名單內,則瀏覽器或其他軟件就會認為HTTPS會話是可信任的、而不會再彈出“證書錯誤”警告。

開啟HTTPS流量解密功能后,Fiddler將會提示用戶將DO_NOT_TRUST_FiddlerRoot證書列入IE瀏覽器的信任CA名單。用於調試客戶端時,這已經足夠了;Firefox用戶也可以很方便的手動導入DO_NOT_TRUST_FiddlerRoot證書。但是,若要在服務器上抓取ASP.Net發出的HTTPS請求,這是不夠的——你必須將DO_NOT_TRUST_FiddlerRoot證書導入“機器帳號”的信任CA名單。

-----------------------------------------------------------------------

使用Charles的ssl proxying功能會導致部分客戶端https請求返回證書無效錯誤

Charles使用的本地證書

參考:

http://www.oschina.net/translate/android-security-implementation-of-self-signed-ssl


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM