原始出處:https://www.cnblogs.com/Charltsing/p/FiddlerCoreHTTPS.html
Fiddlercore可以攔截和修改http的網頁內容,代碼在百度很多。
如果想用Fiddlercore攔截和修改Https的網頁,你會遇到私密連接的問題,導致Chrome無法打開網頁。如何解決這個問題呢?
Fiddlercore攔截Https的原理是自己創建一個Https的證書,重新對網站的鏈接數據進行加密傳輸,所以,我們要通過代碼創建一個https證書給Fiddlercore。
創建Https證書有兩種方式,一種是通過MakeCert.exe ,另一種是通過 CertMaker.dll及BCMakeCert.dll來創建。
在官網說明中,明確的說了兩點:
1、MakeCert.exe使用Windows API生成存儲在用戶的\Personal\Certificates存儲中的證書。這些證書與iOS設備不兼容,后者需要證書中未由MakeCert.exe設置的特定字段。
2、CertMaker.dll使用BouncyCastle C#庫(BCMakeCert.dll)從頭開始生成新證書。這些證書僅存儲在內存中,並與iOS設備兼容。
注意紅色字!!
我們 在Fiddlercore編程的時候,通常采用dll方式創建證書,創建后的證書放在內存中。所以,僅當程序第一次啟動的時候,我們才需要創建證書,以后再啟動程序,就不需要創建證書了,這個過程持續到電腦重啟為止。
創建的證書有兩個關鍵信息:fiddler.certmaker.bc.cert 和 fiddler.certmaker.bc.key。這兩個信息創建之后,要保存到某個地方以備下次啟動時調用獲取之前創建的數字證書。通常,我們可以把這兩個信息(就是字符串)放到App.Config文件里面。
安裝證書使用 CertMaker.createRootCert(),卸載證書使用removeFiddlerGeneratedCerts()
下面是一個注入JS的工具,使用Fiddlercore完成,支持HTTPS網頁。
如果有什么技術問題交流,聯系QQ564955427。
*****************