Win32

2009-03-18 11 views
8

पर कोड के माध्यम से रूट सीए प्रमाण स्थापित करना हमने माइक्रोसॉफ्ट के टीएस गेटवे का उपयोग करके एक नया रिमोट एक्सेस समाधान स्थापित किया है, जिसके लिए इसे काम करने के लिए अंतिम उपयोगकर्ताओं की ओर से कुछ हद तक कुछ कदमों की आवश्यकता है (हमारी रूट स्थापित करना सीए प्रमाण, आरडीपी 6.1 ग्राहक आदि की आवश्यकता)।Win32

इस सेटअप प्रक्रिया को यथासंभव आसान बनाने के लिए (इनमें से बहुत से उपयोगकर्ता तकनीकी रूप से दिमाग में नहीं हैं), मैं इन सभी कार्यों को स्वचालित रूप से करने के लिए एक प्रोग्राम बनाना चाहता हूं। मेरे पास यह अधिकतर काम कर रहा है, हालांकि मुझे पूरी तरह से यकीन नहीं है कि विंडोज प्रमाणपत्र स्टोर में रूट सीए प्रमाण को आयात करने के बारे में कैसे जाना है।

क्योंकि यह संभावित रूप से पैच और अपडेट के विभिन्न स्तरों के साथ कंप्यूटर की एक विस्तृत श्रृंखला पर चल सकता है, मैं .NET और कुछ भी मूल नहीं है, जो कि मूल नहीं है - उपकरण को 'बस चलाएं' उपयोगकर्ता को कुछ भी अतिरिक्त स्थापित करना है (ठीक है, मैं विंडोज एक्सपी कहूंगा, कोई सर्विस पैक नहीं है, विंडोज़ का न्यूनतम आवश्यक संस्करण है)। यह कहकर, मुझे किसी तीसरे पक्ष का उपयोग करने पर कोई फर्क नहीं पड़ता अगर इसे उपकरण के साथ बंडल किया जा सकता है, जब तक कि यह बड़ा न हो, और किसी भी इंटरैक्टिव चरणों को पेश नहीं करता है। आदर्श रूप से विंडोज एपीआई में कुछ सबसे अच्छा होगा, हालांकि मैं कुछ भी प्रासंगिक ट्रैक नहीं कर सकता।

वर्तमान में टूल एक सी ++ एप्लिकेशन है, इसलिए मुझे कोई फर्क नहीं पड़ता कि यह काफी कम स्तर की सामग्री है।

उत्तर

7

सबसे पहले आप रूट प्रमाणपत्र स्टोर खोलने की जरूरत है ...

HCERTSTORE hRootCertStore = CertOpenSystemStore(NULL,"ROOT"); 

फिर प्रमाण पत्र इस तरह के CertAddEncodedCertificateToStore रूप CertAdd काम करता है, में से एक का उपयोग कर जोड़ें।

CertAddEncodedCertificateToStore(hRootCertStore,X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,pCertData,cbCertData,CERT_STORE_ADD_USE_EXISTING,NULL); 

pCertData और cbCertData संभावना प्रमाण पत्र डेटा है कि आप एक फ़ाइल से पढ़ने को इंगित होता है (यकीन नहीं करता है, तो प्रमाण पत्र एक फ़ाइल में हो जाएगा, या आप इसे कैसे अपने आवेदन में शामिल होंगे)।

फिर साथ ...

CertCloseStore(hRootCertStore,0); 

नोट दुकान बंद: उपयोगकर्ता के रूप में चलाने अगर यह कोड, उपयोगकर्ता की जड़ की दुकान, नहीं कंप्यूटर के लिए प्रमाण पत्र स्थापित करता है। यह एक चेतावनी संवाद में भी परिणाम देता है जिसे उपयोगकर्ता को समझना चाहिए और आयात को अधिकृत करने के लिए "हां" का चयन करना चाहिए। यदि आपका सेटअप प्रोग्राम इस कोड को सिस्टम खाते में चला सकता है, तो आयात कंप्यूटर की रूट स्टोर को प्रभावित करेगा और चेतावनी संवाद नहीं दिखाया जाएगा। MSDN

से विंडोज एसडीके में

0

कई सी ++ नमूने बस उन्हें नकल।

2

आप CertAddEncodedCertificateToSystemStore

भी देख सकते हैं