使用FiddlerCore捕获对不存在的服务器的HTTPS请求

使用FiddlerCore捕获对不存在的服务器的HTTPS请求,https,fiddler,fiddlercore,Https,Fiddler,Fiddlercore,我正在尝试使用FiddlerCore发送对HTTPS请求的响应。 我需要这样做:我在浏览器中放了一些假的URL,比如https://my_url_that_doesnt_exist.com/,然后我用FiddlerCore截获这个请求,并用我的数据响应它。但我只看到一个连接和主机URL。我知道这是因为HTTPS和Fiddler是代理。但是有没有一种方法可以使用FiddlerCore获取真正的完整URL并能够响应HTTPS请求呢 如果缺少根证书,我还将使用此代码创建根证书: if(!Fiddler

我正在尝试使用FiddlerCore发送对HTTPS请求的响应。 我需要这样做:我在浏览器中放了一些假的URL,比如
https://my_url_that_doesnt_exist.com/
,然后我用FiddlerCore截获这个请求,并用我的数据响应它。但我只看到一个连接和主机URL。我知道这是因为HTTPS和Fiddler是代理。但是有没有一种方法可以使用FiddlerCore获取真正的完整URL并能够响应HTTPS请求呢

如果缺少根证书,我还将使用此代码创建根证书:

if(!Fiddler.CertMaker.rootCertExists())
{
如果(!Fiddler.CertMaker.createRootCert())
{
抛出新异常(“无法创建证书”);
}
}
此外,我使用以下启动设置:

FiddlerCoreStartupFlags fcsf=FiddlerCoreStartupFlags.Default | FiddlerCoreStartupFlags.decryptsl | FiddlerCoreStartupFlags.AllowRemoteClients;
CONFIG.IgnoreServerCertErrors=true

此HTTPS请求在Fiddler本身中不可见。我的意思是,当我尝试一些不存在的URL时,我希望我的应用程序以一些自定义内容响应这些URL。它也是HTTP,而不是HTTPS,Fiddler本身包含以下响应:

[Fiddler] DNS Lookup for "my_url_that_doesnt_exist.com" failed. The requested name is valid, but no data of the requested type was found
但是如果我使用一些现有的HTTPS URL,比如GooglePlus或类似的东西,我可以看到HTTPS和所有请求的详细信息

所以问题就来了:我如何截获对一个不存在的URL的HTTPS请求,并提供我的内容呢

我可以提供任何额外的细节,如果需要的话


另外,
makecert.exe
与我的所有二进制文件位于同一文件夹中。

问题是HTTPS通信流通过连接隧道,默认情况下,如果创建到目标服务器的连接隧道未成功,则不会发送安全通信。当然,如果目标服务器不存在,那么在创建隧道时会出现DNS错误,因此永远不会发送安全请求

解决方法是让Fiddler告诉客户机连接隧道已经创建,而不需要尝试联系服务器。通过在
BeforeRequest
处理程序中添加以下内容:

if (oSession.HTTPMethodIs("CONNECT"))
{
  oSession.oFlags["x-replywithtunnel"] = "GenerateTunnel";
  return;
}