2010-09-21 6 views
6

के साथ कस्टम रूट का उपयोग करना FTDlerCore के लिए HTTPS ट्रैफ़िक को रोकने के लिए कस्टम रूट CA का उपयोग करना संभव है।FiddlerCore

मुझे जो चाहिए वह सभी होस्ट प्रमाणपत्रों पर हस्ताक्षर करने के लिए उपयोग किए जाने वाले प्रमाण पत्र को असाइन करना है।

एक अन्य समाधान रूट प्रमाणपत्र बनाने से पहले फिडलरकोर को प्रमाण पत्र जानकारी प्रदान कर सकता है।

उत्तर

1

फिडलरकोर वर्तमान में अपनी स्वयं-हस्ताक्षरित रूट में मौजूद जानकारी को कस्टमाइज़ करने की क्षमता प्रदान नहीं करता है। यह DO_NOT_TRUST_FiddlerRoot नामक रूट पर जंजीर सभी एंड-एंट्री प्रमाणपत्र उत्पन्न करेगा।

क्या आप इस क्षमता की तलाश क्यों कर सकते हैं?

+0

हम एक वाणिज्यिक उपकरण पर प्रॉक्सी समर्थन प्रदान करने के लिए फिडलरकोर का उपयोग कर रहे हैं। जब उपयोगकर्ता प्रॉक्सी सुविधा शुरू करता है, तो FiddlerCore Fiddler जेनरेट रूट रूट प्रमाणपत्र स्थापित करने का प्रयास करता है और FiddlerRoot टेक्स्ट दिखाया जाता है। उद्देश्य इस पाठ को अनुकूलित करना है। – dereli

+0

वास्तव में रूट स्थापित करने के लिए, आप FiddlerCore विधि को कॉल किए बिना ऐसा कर सकते हैं जो ऐसा करता है। हालांकि, ध्यान दें कि प्रॉम्प्ट का पाठ विंडोज़ से है, फिडलर नहीं। X509Store certStore = new X509Store (StoreName.Root, StoreLocation.CurrentUser); certStore.Open (OpenFlags.ReadWrite); {certStore.Add (oRootCert) आज़माएं; // मई के कारण विंडोज़ 'सुरक्षा संकेत } गिरावट के कारण असफल हो सकता है {\t certStore.Close(); } रूट स्थापित करने के अन्य तरीके हैं, लेकिन उन्हें आवश्यकता है कि आपका एप्लिकेशन व्यवस्थापक के रूप में चल रहा है। – EricLaw

+0

रूट प्रमाणपत्र स्थापित करना ठीक है लेकिन समस्या यह है कि FiddlerCore स्वचालित रूप से जेनरेट किए गए प्रति-साइट प्रमाणपत्रों पर हस्ताक्षर करने के लिए उस प्रमाणपत्र का उपयोग नहीं करेगा। – dereli

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")); 

आप दृश्य स्टूडियो उपकरण का उपयोग कर अपने स्वयं के प्रमाणपत्र बना सकता है, हालांकि, मैं इस मुफ्त कार्यक्रम एक परीक्षण एक कारण बनाने के लिए इस्तेमाल मैं आलसी हूँ: प्रमाणपत्र मशीन पर स्थापित किया गया है 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 संपत्ति का उपयोग कर सकते हैं:

यहाँ यह करने के लिए कुछ कोड (नहीं परीक्षण किया है)। मैंने एचटीटीपीएस ट्रैफिक को कैप्चर करने के लिए फिडलरकोरेपीआई का उपयोग करके अपने विंडो सर्विस एप्लिकेशन पर इसका इस्तेमाल किया।

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' क्लाइंट प्रमाणपत्र का उपयोग करने के लिए चिंतित है; प्रश्न * सर्वर * प्रमाण पत्र पीढ़ी के लिए उपयोग किए गए मूल प्रमाण पत्र के बारे में है। – EricLaw