2010-09-21 22 views
6

是否可以使用FiddlerCore的自定義根CA來攔截HTTPS通信。在FiddlerCore中使用自定義根

我需要的是分配一個證書用於簽署所有主機證書。

另一種解決方案是在創建根證書之前向FiddlerCore提供證書信息。

回答

1

FiddlerCore目前不提供自定義其自簽名根中包含的信息的功能。它將生成鏈接到名爲DO_NOT_TRUST_FiddlerRoot的根的所有最終實體證書。

你能詳細說明你爲什麼尋求這種能力嗎?

+0

我們使用FiddlerCore爲商業工具提供代理支持。當用戶啓動代理功能時,FiddlerCore會嘗試安裝Fiddler生成的根證書並顯示FiddlerRoot文本。目標是定製這個文本。 – dereli 2010-10-07 11:49:00

+0

對於實際安裝根目錄,你可以自己這樣做,而無需調用這樣做的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

+0

安裝根證書是可以的,但問題是FiddlerCore不會使用該證書籤署自動生成的每站點證書。 – dereli 2010-10-10 09:30:46

1
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(); 
} 
-1

可以使用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); 
+0

'oDefaultClientCertificate'涉及使用什麼客戶端證書;問題是關於用於* server *證書生成的根證書。 – EricLaw 2014-05-06 18:36:34

相關問題