Windows EXE फ़ाइल साइन करना


180

मेरे पास एक EXE फ़ाइल है जिसे मुझे साइन इन करना चाहिए ताकि विंडोज "अज्ञात प्रकाशक" से किसी एप्लिकेशन के बारे में अंतिम उपयोगकर्ता को चेतावनी न दे। मैं विंडोज डेवलपर नहीं हूं। प्रश्न में आवेदन एक स्क्रीनसेवर है जो एक एप्लिकेशन से उत्पन्न होता है जो स्क्रीनसेवर एप्लिकेशन को उत्पन्न करता है। जैसे कि फ़ाइल का निर्माण कैसे हुआ, इस पर मेरा कोई प्रभाव नहीं है।

मुझे पहले ही पता चला है कि मुझे एक कोड की आवश्यकता होगी जैसे कि Verisign या instantssl.com जैसे CA से प्रमाणपत्र पर हस्ताक्षर करना होगा । मुझे समझ में नहीं आता है कि मुझे अपनी EXE फ़ाइल पर हस्ताक्षर करने के लिए क्या करना है (यदि संभव हो तो)। एक सरल व्याख्या क्या है?

मेल ग्रीन का जवाब मुझे और आगे ले गया, लेकिन साइनटूल चाहता है कि मैं किसी भी मामले में किस सर्टिफिकेट का इस्तेमाल करूं। क्या मुझे परीक्षण के लिए किसी तरह से नि: शुल्क कोड पर हस्ताक्षर प्रमाण पत्र मिल सकता है अगर यह मेरे लिए बिल्कुल काम करेगा?

कृपया यह भी निर्दिष्ट करें कि कौन सा प्रमाणपत्र प्रकार सही है। अधिकांश साइटें केवल "कोड साइनिंग" का उल्लेख करती हैं और उन अनुप्रयोगों पर हस्ताक्षर करने के बारे में बात करती हैं जो वास्तव में उपयोगकर्ता द्वारा संकलित किए जाते हैं। मेरे लिए ऐसा नहीं है।


3
बस जिज्ञासु - प्रमाण पत्र खरीदने के लिए कितना भुगतान करना होगा?
TheNameOfScience

2
@Rigel लगभग $ 400 एक वर्ष, शायद लायक नहीं है :)
शरण अरुमुगम

@ शरणमर्गम: क्या ?????? यह ऐसा है जैसे कि Microsfot सस्ते / मुफ्त सॉफ्टवेयर के खिलाफ है!
InNameOfScience

जवाबों:


116

आप Microsoft के साइन टूल का उपयोग करके देख सकते हैं

आप इसे Windows Server 2008 और .NET 3.5 के लिए Windows SDK के भाग के रूप में डाउनलोड करते हैं। एक बार डाउनलोड करने के बाद आप इसे कमांड लाइन से उपयोग कर सकते हैं जैसे:

signtool साइन / एक MyFile.exe

यह उपलब्ध "सर्वश्रेष्ठ प्रमाण पत्र" का उपयोग करके एकल निष्पादन योग्य पर हस्ताक्षर करता है। (यदि आपके पास कोई प्रमाण पत्र नहीं है, तो यह साइनटूल त्रुटि संदेश दिखाएगा।)

या आप कोशिश कर सकते हैं:

signtool सांकेतिक शब्द

यह एक विज़ार्ड लॉन्च करेगा जो आपके आवेदन पर हस्ताक्षर करने के माध्यम से आपको चलेगा। (यह विकल्प विंडोज एसडीके 7.0 के बाद उपलब्ध नहीं है।)


यदि आप प्रमाणपत्र की एक पकड़ प्राप्त करना चाहते हैं, जिसका उपयोग आप निष्पादन योग्य हस्ताक्षर करने की अपनी प्रक्रिया का परीक्षण करने के लिए कर सकते हैं। आप .NET टूल मेकेर्ट का उपयोग कर सकते हैं ।

प्रमाणपत्र निर्माण उपकरण (Makecert.exe)

एक बार जब आप अपना स्वयं का प्रमाणपत्र बना लेते हैं और इसका उपयोग अपने निष्पादन योग्य पर हस्ताक्षर करने के लिए करते हैं, तो आपको UAC के लिए अपनी मशीन के लिए मैन्युअल रूप से एक विश्वसनीय रूट CA के रूप में जोड़ना होगा ताकि उपयोगकर्ता उसे यह बता सके कि यह एक विश्वसनीय स्रोत से है। महत्वपूर्ण हैROOT CA के रूप में एक प्रमाणपत्र स्थापित करने से आपके उपयोगकर्ताओं की गोपनीयता खतरे में पड़ जाएगी। देखिए क्या हुआ DELL के साथ। आप इसे कोड में और विंडोज में दोनों के माध्यम से पूरा करने के लिए अधिक जानकारी प्राप्त कर सकते हैं:

उम्मीद है कि ऐसा करने के लिए किसी और के लिए कुछ और जानकारी प्रदान करता है!


अलग प्रश्न में एक वर्कफ़्लो वर्कफ़्लो: stackoverflow.com/questions/84847/…
The_Ghost

4
"यह टूल स्वचालित रूप से विजुअल स्टूडियो के साथ स्थापित है। टूल को चलाने के लिए, डेवलपर कमांड प्रॉम्प्ट (या विंडोज 7 में विजुअल स्टूडियो कमांड प्रॉम्प्ट) का उपयोग करें।" msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.110).aspx
Westy92

साइनटूल द्वारा उपयोग किए जाने वाले प्रमाण पत्र के बारे में बहुत उत्सुक।
Overdrivr

1
विंडोज एसडीके 7.0
उमर रीस

Makecert को पदावनत कर दिया गया है और इसके बजाय एक परीक्षण प्रमाणपत्र बनाने के लिए एक PowerShell cmdlet New-SelfSignCertificate का उपयोग किया जाना चाहिए। में विवरण stackoverflow.com/a/51443366/38117911 (एक सवाल The_Ghost से जुड़े का जवाब)।
अलेक्जेंडर रेवो

35

मेरी नौकरी में भी यही परिदृश्य था और यहां हमारे निष्कर्ष हैं

पहली चीज जो आपको करनी है वह है प्रमाण पत्र प्राप्त करें और इसे अपने कंप्यूटर पर स्थापित करें, आप या तो एक प्रमाण पत्र प्राधिकरण से खरीद सकते हैं या एक makecert का उपयोग कर उत्पन्न कर सकते हैं

यहाँ 2 विकल्प के पेशेवरों और विपक्ष हैं

एक प्रमाण पत्र खरीदें

  • पेशेवरों
    • एक CA (प्रमाणपत्र प्राधिकरण) द्वारा जारी किए गए प्रमाण पत्र का उपयोग करना यह सुनिश्चित करेगा कि विंडोज़ किसी भी कंप्यूटर पर "अज्ञात प्रकाशक" के आवेदन के बारे में अंतिम उपयोगकर्ता को चेतावनी नहीं देगा कि वह CA से प्रमाण पत्र का उपयोग कर रहा है (ओएस सामान्य रूप से मैनी सीए के मूल प्रमाण पत्र के साथ आता है )
  • विपक्ष:
    • एक सीए से प्रमाण पत्र प्राप्त करने में एक लागत शामिल है

Makecert का उपयोग करके एक प्रमाण पत्र बनाएं

  • पेशेवरों:
    • चरण आसान हैं और आप अंतिम उपयोगकर्ताओं के साथ प्रमाणपत्र साझा कर सकते हैं
  • विपक्ष:
    • अंतिम उपयोगकर्ताओं को मैन्युअल रूप से अपनी मशीनों पर प्रमाणपत्र स्थापित करना होगा और आपके ग्राहकों पर निर्भर करेगा जो एक विकल्प नहीं हो सकता है
    • Makecert के साथ उत्पन्न प्रमाण पत्र आमतौर पर विकास और परीक्षण के लिए उपयोग किए जाते हैं, न कि उत्पादन के लिए

निष्पादन योग्य फ़ाइल पर हस्ताक्षर करें

आपके द्वारा इच्छित फ़ाइल पर हस्ताक्षर करने के दो तरीके हैं:

  • कंप्यूटर पर स्थापित प्रमाण पत्र का उपयोग करना

    signtool.exe साइन / a / s MY / sha1_thumbprint_value / t http://timestamp.verisign.com/scripts/timstamp.dll / v "C: \ filename.dll"

    • इस उदाहरण में हम SHA1 थंबप्रिंट (प्रमाण पत्र से आता है) के साथ व्यक्तिगत फ़ोल्डर पर संग्रहीत प्रमाणपत्र का उपयोग कर रहे हैं "C: \ filename.dll" पर स्थित फ़ाइल पर हस्ताक्षर करने के लिए
  • प्रमाण पत्र फ़ाइल का उपयोग करना

    signtool sign / tr http://timestamp.digicert.com / td sha256 / fd sha256 / f "c: \ path \ to to my mycert.pfx" / p pfxpassword "c:" path \ to to \ file.exe "

    • इस उदाहरण में हम "p: \ path \ to \ file.exe" फ़ाइल पर हस्ताक्षर करने के लिए पासवर्ड pfxpassword के साथ "c: \ path \ to \ mycert.pfx" प्रमाणपत्र का उपयोग कर रहे हैं।

अपने हस्ताक्षर का परीक्षण करें

विधि 1: साइनटूल का उपयोग करना

पर जाएं: प्रारंभ> रन प्रकार सीएमडी> ठीक क्लिक करें कमांड प्रॉम्प्ट पर, उस निर्देशिका में प्रवेश करें जहां साइनटूल मौजूद है निम्नलिखित को चलाएँ:

signtool.exe सत्यापित करें / pa / v "C: \ filename.dll"

विधि 2: विंडोज का उपयोग करना

हस्ताक्षरित फ़ाइल पर राइट-क्लिक करें गुण चुनें डिजिटल हस्ताक्षर टैब चुनें। हस्ताक्षर हस्ताक्षर सूची अनुभाग में प्रदर्शित किए जाएंगे।

मुझे उम्मीद है कि यह आपकी मदद कर सकता है

सूत्रों का कहना है:


खुशी है कि मैं @PhilLab
Erick Castrillo

कृपया $$$ का अनुमान भी दें। धन्यवाद!
InNameOfScience

1
@WeGoToMars मुझे लगता है कि यह लेख आपको cheapsslsecurity.com/sslproducts/codesigningcertificate.html या यहाँ digicert.com/code-signing
Erick Castrillo

31

यदि आप ओपन सोर्स डेवलपमेंट कर रहे हैं, तो आपको सर्टिफिकेट से एक नि: शुल्क सस्ता कोड साइनिंग सर्टिफिकेट मिल सकता है ।

मैं एक साल से उनके प्रमाण पत्र का उपयोग कर रहा हूं, और यह विंडोज से अज्ञात प्रकाशक संदेश से छुटकारा दिलाता है।

जहाँ तक कोड पर हस्ताक्षर करने की बात है, मैं इस तरह से स्क्रिप्ट से signtool.exe का उपयोग करता हूं :

signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe

3
यह अब और अधिक सस्ता नहीं दिखता है, € 14
hultqvist

1
आप सही हैं यह किसी भी अधिक मुक्त नहीं दिखता है। fwiw मैंने अभी नया किया है, और मैंने कुछ भी भुगतान नहीं किया है। शायद मैं इसमें दादा हूं। शायद उनकी आंतरिक प्रक्रियाएं टूट गई हैं। उनकी वेबसाइट सुनिश्चित है कि जटिल है।
ली रिचर्डसन


सर्टिफिकेट शॉप का कहना है कि उनका ओपन सोर्स सर्टिफिकेट माइक्रोसॉफ्ट स्मार्टस्क्रीन फिल्टर मैसेज को नहीं हटाएगा।
मार्कस लायर

17

एएसपी की पत्रिका एएसपीज में कोड पर हस्ताक्षर करने के बारे में विस्तृत विवरण है (आपको लेख पढ़ने के लिए सदस्य होना चाहिए)। आप इसे http://www.asp-shareware.org/ के माध्यम से डाउनलोड कर सकते हैं

यहाँ विवरण के लिए लिंक दिया गया है कि आप अपना स्वयं का परीक्षण प्रमाणपत्र कैसे बना सकते हैं

यह भी दिलचस्प हो सकता है।


7
परिशिष्ट चार साल बाद: Comodo 2012 की शुरुआत (में कुछ समय छेड़छाड़ की गई थी blogs.comodo.com/it-security/data-security/... ) और इसलिए उपयोगकर्ता एजेंटों के बहुत सारे अब एक Comodo जड़ अधिकार के साथ प्रमाण पत्र अस्वीकार
ए विल्सन

8
क्या कोमोडो अभी भी 2013 के मध्य में एक जोखिम भरा दांव है, और 'उपयोगकर्ता एजेंटों' द्वारा, इसका मतलब है कि माइक्रोसॉफ्ट / विंडोज निश्चित रूप से वे हैं जो यह तय करते हैं कि उस कुख्यात 'अज्ञात प्रकाशक' संदेश को दिखाना है या नहीं।
डान डब्ल्यू

क्षमा करें, स्पष्ट सेवा अनुशंसाएं निकाल दी गई हैं, जो 1) पुरानी हैं और 2) को अब विषय से हटा दिया गया है (क्योंकि 1.)।
deceze

10

एक अन्य विकल्प, यदि आपको लिनक्स बॉक्स पर निष्पादन योग्य पर हस्ताक्षर करने की आवश्यकता है, तो मोनो प्रोजेक्ट टूल्स से साइनकोड का उपयोग करें । यह उबंटू पर समर्थित है


1
यह बहुत मददगार है! पैकेज डेबियन में मोनो-डेवेल नाम से उपलब्ध है ।
मैरियन

8

संदर्भ https://steward-fu.github.io/website/driver/wdm/self_sign.htm नोट: Microsoft SDK से signtool.exe

1. पहली बार (निजी प्रमाण पत्र बनाने के लिए)

Makecert -r -pe -ss YourName YourName.cer

certmgr.exe -add YourName.cer -s -r localMachine root

2. बाद में (अपने ऐप में अपना साइन जोड़ने के लिए)

signtool साइन / s आपका नाम YourApp.exe


4

और फिर भी एक अन्य विकल्प, यदि आप विंडोज 10 पर विकसित कर रहे हैं, लेकिन माइक्रोसॉफ्ट के साइनटूल.नेट स्थापित नहीं हैं, तो आप अपने ऐप पर हस्ताक्षर करने के लिए विंडोज पर उबंटू का उपयोग कर सकते हैं। यहाँ एक रन डाउन है:

https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/


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

4

साइन .exe (सेटअप / इंस्टॉलर) फ़ाइल के लिए निम्न लिंक का उपयोग करें (साइन इन करें / Microsoft सेटअप साइनटूल का उपयोग किए बिना सेटअप फ़ाइल)

https://ebourg.github.io/jsign/#files

नमूना कमांड जावा -जर jsign-2.0.jar --keystore keystore.jks "- आलिया उर्फ ​​--स्टोरपास पासवर्ड MyInstaller.exe

मेरे लिए काम किया :)


3

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

तो, EV हस्ताक्षर के लिए कीमतें:

1 वर्ष $ 350 + ($ 50 छिपा शुल्क)
2 वर्ष $ 600
3 वर्ष $ 750
[www.ksoftware.net] [3]
eToken को USB स्टिक के रूप में भेजा गया। किसी पाठक की जरूरत नहीं।
आप वास्तव में कोमोडो (Sectigo) से खरीद

1 वर्ष 350 यूरो
3 वर्ष 799 यूरो
sklep.certum.pl

1 वर्ष $ 499 यूएसडी
3 वर्ष $ 897 यूएसडी
sectigo.com

1 वर्ष $ 410 कुल
2 वर्ष $ 760 कुल
3 वर्ष $ 950 कुल
www.globalsign.com

1 वर्ष: $ 600 (यह $ 104 था)
3 वर्ष:?
www.digicert.com

1 वर्ष: $ 700
3 वर्ष: हास्यास्पद महंगा
[ https://trustcenter.websecurity.symantec.com/.com/]

यहाँ और अधिक मूल्य:
https://cheapsslsecurity.com/sslproducts/codesigningcertificate.html


इसके अलावा Erick Castrillo द्वारा जोड़ा गया लिंक देखें: cheapsslsecurity.com/sslproducts/codesigningingertheet.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.