原始出处: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。
*****************
来源:oschina
链接:https://my.oschina.net/u/4268712/blog/3512212