2009-06-25 14 views
6

मैं एक विश्वसनीय सीए द्वारा जारी प्रमाण पत्र के साथ एक EXE प्रोग्राम पर हस्ताक्षर कर रहा हूं। मैं विंडोज एसडीके v6.0a से signtool.exe का उपयोग कर रहा हूँ।साइनटूल त्रुटि: ISignedCode :: साइन लौटाई गई त्रुटि: 0x80092006

प्रमाणपत्र कंप्यूटर स्टोर में स्थित है और यह "व्यक्तिगत" फ़ोल्डर में है।

मेरे आदेश पंक्ति है:

sign /sm /n "My company" /d MyProductName /du http://my.url.com "C:\Setup\setup.exe" 

जब मैं कमांड लाइन पर इस आदेश को चलाने के लिए, यह ठीक काम करता है। जब मैं एक बैच प्रक्रिया में इस आदेश को चलाने के (एक वेब सेवा द्वारा कहा जाता है, तो वहाँ जब आदेश निष्पादित किया जाता है में लॉग इन कोई उपयोगकर्ता नहीं है), तो निम्न त्रुटि पाए जाते हैं: 1 SignTool त्रुटि:: ISignedCode

त्रुटियों की संख्या :: साइन इन त्रुटि: 0x80092006 स्टोर या ऑब्जेक्ट के लिए कोई प्रदाता निर्दिष्ट नहीं किया गया था।

कोई भी इस पर सहायता कर सकता है?

उत्तर

1

मैंने [अभी, केवल एक बार] एक ही स्थिति का अनुभव किया है (एक अलग एमएसआई फ़ाइल को छोड़कर एक ही पैरामीटर के साथ सफल आमंत्रण के तुरंत बाद)। निर्माण स्क्रिप्ट के अगले निष्पादन पर पुनर्मिलन सफल रहा। इसके अलावा का उपयोग कर, जैसे आप

/sm /d /du
/n
का उपयोग नहीं इसके अतिरिक्त
/t

2

का उपयोग कर समस्या यह है कि आपकी सेवा प्रक्रिया अपनी निजी कुंजी है, जो आपके खाते के अंतर्गत संग्रहीत किया जाता है का उपयोग नहीं कर सकते हैं।

वेब सेवा चला रहे खाते में लॉग ऑन करें और एक निजी कंटेनर में निजी कुंजी आयात करें। अब

sn -i MyCertificate.pfx MyCodeSigningKey 

, इस कुंजी कंटेनर का उपयोग कर अपने निर्माण स्क्रिप्ट बदलने के लिए:: आप .NET की strong name tool (sn.exe) का उपयोग कर उदाहरण के लिए ऐसा कर सकते हैं

signtool sign /sm /a /v /csp "Microsoft Strong Cryptographic Provider" /kc MyCodeSigningKey <other parameters...> 

/kc कुंजी कंटेनर निर्दिष्ट करता है। /kc की आवश्यकता है कि आप /csp स्विच के माध्यम से "सीएसपी" (क्रिप्टोग्राफिक सेवा प्रदाता) निर्दिष्ट करें। "माइक्रोसॉफ्ट स्ट्रॉन्ग क्रिप्टोग्राफिक प्रदाता" sn द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट प्रदाता है।

+0

बेवकूफ सवाल - क्या निजी कुंजी को कंप्यूटर की दुकान में संग्रहीत नहीं किया जाना चाहिए, क्योंकि वह ऊपर/sm का उपयोग कर रहा है? मैं एक ही चीज़ के साथ कुश्ती कर रहा हूं और एक उत्पादन मशीन पर एक और उपकरण (sn.exe) डालने से बचने की उम्मीद कर रहा हूं। – DougN

+0

प्रमाणपत्र मशीन स्टोर में संग्रहीत है, लेकिन निजी कुंजी नहीं। एसएन मानक .NET स्थापना का हिस्सा है। – oefe

1

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

0

मुझे यह समस्या भी मिली है। अभी भी यह सुनिश्चित नहीं है कि इसका कारण क्या हुआ क्योंकि मेरे पास कभी पता लगाने का समय नहीं था। मुझे मिली चीज़ यह थी कि निजी कुंजी गायब हो गई !?

मैंने कोडर_2007 सुझाव दिया और यह एक पूर्ण स्वचालित निर्माण के लिए काम किया लेकिन अगला वाला एक ही त्रुटि देगा। तो मेरे निर्माण सर्वर पर कुछ पूर्ण निर्माण के बाद निजी कुंजी तोड़ दी (कई हस्ताक्षरित अनुप्रयोगों सहित)।

%allusersprofile%\Microsoft\Crypto\RSA\MachineKeys पर जाने के लिए, पीएफएक्स आयात करने के तुरंत बाद, मैं अंततः क्या कर रहा था और नवीनतम फ़ाइल (आयात के समय से मेल खाता है) की रक्षा करने के लिए लिखता हूं।

0

यह तब हो सकता है जब प्रमाण पत्र स्थापित होने के बाद आपका विंडोज पासवर्ड बदल दिया गया हो। पासवर्ड को वापस करने के लिए इसे बदलना इसे ठीक करेगा। यदि आप ऐसा नहीं कर सकते हैं तो आपको प्रमाणपत्र को पुनर्स्थापित करने की आवश्यकता होगी।

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