2012-01-14 11 views
5

previous question पर फ़ॉलो करें, मेरे पास कुछ कोड है जो एक निजी कुंजी के साथ X509 प्रमाणपत्र प्राप्त करने की आवश्यकता है। जैसा कि उत्तर में बताया गया है, उत्पादन में यह X509Store का उपयोग करेगा।निजी कुंजी के साथ प्रमाणपत्र के आधार 64 एन्कोडेड मान कैसे प्राप्त करें?

यूनिट परीक्षण करने का सबसे अच्छा तरीका क्या है? मैं उत्पादन में होने के मुकाबले विभिन्न प्रमाणपत्रों के साथ विकास और परीक्षण करना चाहता हूं, इसलिए मैं विभिन्न कार्यान्वयन प्रदान करने के लिए प्रमाणपत्र प्रमाणपत्र इंटरफ़ेस बना सकता हूं।

परीक्षण/देव कार्यान्वयन के लिए, प्रमाण पत्र की बेस 64 एन्कोडेड स्ट्रिंग का उपयोग करना अच्छा होगा, और एक डमी पासवर्ड और समर्पित परीक्षण/देव प्रमाण के साथ एक प्रमाण उदाहरण बनायेगा। हालांकि अब तक मैं यह निर्धारित करने में असमर्थ हूं कि बेस 64 स्ट्रिंग के रूप में निजी कुंजी के साथ प्रमाणपत्र को एन्कोड कैसे किया जाए। प्रत्येक बार जब मैं एमएमसी से बेस -64 के रूप में प्रमाण निर्यात करने का प्रयास करता हूं, तो यह केवल सार्वजनिक कुंजी को एन्कोड करता है।

+0

आप प्रमाण पत्र कैसे बनाते हैं? –

+0

इन स्विच के साथ makecert.exe का उपयोग करके बनाया गया: -r -pe – danludwig

उत्तर

9

मैं यह समझने में असमर्थ था कि एमएमसी के साथ ऐसा कैसे किया जाए। हालांकि मैं यह पता लगाने की थी कैसे कोड में यह करने के लिए:

var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
store.Open(OpenFlags.ReadOnly); 
var certificate = store.Certificates.Find(X509FindType.FindByThumbprint, 
    "BLABLABLA", false)[0]; // doesn't matter how you get the cert 
var exported = certificate.Export(X509ContentType.Pfx, "the password"); 
var base64 = Convert.ToBase64String(exported); 
store.Close(); 

जब तक प्रमाणपत्र आप एक्स 509 की दुकान से हो रही है निजी कुंजी के रूप में, यह निर्यात बाइट arrray में खत्म हो जाएगा, जो आप कर सकते हैं फिर बेस 64 स्ट्रिंग में कनवर्ट करें।

0

सुनिश्चित करें कि जब आप स्टोर में प्रमाणपत्र जोड़ते हैं तो आप निजी कुंजी को निर्यात करने योग्य के रूप में चिह्नित करते हैं।

आप makecert का उपयोग करते हैं प्रमाण पत्र बनाने के लिए, पीई विकल्प निजी कुंजी निर्यात करने योग्य बनाने के लिए जोड़ सकते हैं।

+0

मैंने ऐसा किया, लेकिन यह मुझे pkcs12 (.pfx) को छोड़कर कुछ भी निर्यात करने नहीं देगा। – danludwig

संबंधित मुद्दे