是否可以使用FiddlerCore的自定義根CA來攔截HTTPS通信。在FiddlerCore中使用自定義根
我需要的是分配一個證書用於簽署所有主機證書。
另一種解決方案是在創建根證書之前向FiddlerCore提供證書信息。
是否可以使用FiddlerCore的自定義根CA來攔截HTTPS通信。在FiddlerCore中使用自定義根
我需要的是分配一個證書用於簽署所有主機證書。
另一種解決方案是在創建根證書之前向FiddlerCore提供證書信息。
FiddlerCore目前不提供自定義其自簽名根中包含的信息的功能。它將生成鏈接到名爲DO_NOT_TRUST_FiddlerRoot的根的所有最終實體證書。
你能詳細說明你爲什麼尋求這種能力嗎?
FiddlerApplication.Startup(9999, FiddlerCoreStartupFlags.DecryptSSL);
var path = Path.GetDirectoryName(Assembly.GetCallingAssembly().Location) + @"\sslcertificate.pfx";
var secureEndpoint = FiddlerApplication.CreateProxyEndpoint(443, true, new X509Certificate2(path, "password"));
您可以使用Visual Studio工具自己的證書,但是,我用這個免費程序創建一個測試一個,因爲我懶: http://www.xenossoftware.com/freetools/certificategenerator/
如果安裝在機器上的證書,我相信你也可以使用X509Store類來做同樣的事情。
下面是一些代碼來做到這一點(未測試):
FiddlerApplication.Startup(9999, FiddlerCoreStartupFlags.DecryptSSL);
var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
try
{
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var x509Certificate2 = store.Certificates.Find(X509FindType.FindBySubjectName, "YourSSLCertificateName", true)[0];
secureEndpoint = FiddlerApplication.CreateProxyEndpoint(443, true, x509Certificate2);
}
finally
{
store.Close();
}
可以使用FiddlerApplication的oDefaultClientCertificate屬性來指定現有證書。我在使用FiddlerCoreAPI的窗口服務應用程序上使用它來捕獲HTTPS流量。
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
path = path.Replace("file:\\", "");
if (!path.EndsWith(@"\")) path += @"\";
path += "FiddlerRoot.cer";
FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
FiddlerApplication.oDefaultClientCertificate = new X509Certificate(path);
FiddlerApplication.Startup(8888, FiddlerCoreStartupFlags.DecryptSSL);
'oDefaultClientCertificate'涉及使用什麼客戶端證書;問題是關於用於* server *證書生成的根證書。 – EricLaw 2014-05-06 18:36:34
我們使用FiddlerCore爲商業工具提供代理支持。當用戶啓動代理功能時,FiddlerCore會嘗試安裝Fiddler生成的根證書並顯示FiddlerRoot文本。目標是定製這個文本。 – dereli 2010-10-07 11:49:00
對於實際安裝根目錄,你可以自己這樣做,而無需調用這樣做的FiddlerCore方法。但是請注意,提示文本來自Windows,而不是Fiddler。 X509Store certStore = new X509Store(StoreName.Root,StoreLocation.CurrentUser);certStore.Open(OpenFlags.ReadWrite); 嘗試{certStore.Add(oRootCert); //可能因用戶拒絕Windows的安全提示而失敗 } finally {\t certStore.Close(); } 還有其他方法來安裝根,但它們要求您的應用程序以管理員身份運行。 – EricLaw 2010-10-08 15:31:09
安裝根證書是可以的,但問題是FiddlerCore不會使用該證書籤署自動生成的每站點證書。 – dereli 2010-10-10 09:30:46