2013-10-03 32 views
8

Właśnie kupiłem certyfikat do podpisywania kodu z Comodo. Zbudowałem małą bazę danych MS Access, którą chcę zainstalować przy pomocy Inno Setup Installer. Skrypt działa dobrze, ale jestem całkowicie nowy w procesie podpisywania kodu.InnoSetup - Świadectwo podpisania kodu

Jak mogę podpisać mój plik instalacyjny? Czy potrzebuję zewnętrznego oprogramowania do podpisania certyfikatu lub czy mogę to zrobić z poziomu Inno Setup?

Próbowałem szukać odpowiedzi na podobne pytania, ale nikt nie był w stanie pokazać mi, czego potrzebuję, aby zacząć, i jak się do tego zabrać.

+1

Na przykład [ 'to tutorial'] (http: //blog.ksoftware .net/2011/07/how-to-automate-code-signing-with-innosetup-and-ksign /) może ci pomóc w pierwszych krokach. – TLama

+2

Powinieneś to opublikować jako odpowiedź, gdy odpowiadasz. :) – Miral

+0

@TLama Link jest martwy (~ blog ~) to działa: http://support.ksoftware.net/support/solutions/articles/17169-how-do-i-automate-code-signing-withinsetset- i-ksign- – SlowLearner

Odpowiedz

10

Aby zapisać plik wykonywalny (instalator generowane przez Inno Setup) po prostu utworzyć plik wsadowy (.bat) i umieścić zawartość w nim:

"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /f Installer_Wizard_Code_Signing_Certificate.pfx /p password123 /t http://timestamp.verisign.com/scripts/timstamp.dll MySetupFile.exe 

gdzie

„c: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ bin \ signtool.exe” jest ścieżka do podpisania narzędzia Microsoft (część Microsoft SDK)

Installer_Wizard_Code_Signing_Certificate.pfx jest certyfikat

password123 jest hasło do certyfikatu

MySetupFile.exe jest plik instalacyjny chcesz podpisać

Umieść wszystkie pliki w jednym katalogu (certyfikat instalacyjny do podpisania, i plik wsadowy) i uruchom plik wsadowy. Signtool podpisuje plik z certyfikatem i sprawdza jego ważność na oficjalnym serwerze.

(można użyć http://timestamp.verisign.com/scripts/timstamp.dll serwer chociaż masz certyfikat Comodo, to nie ma znaczenia.)

+9

Dlaczego nie sugerujesz obsługi wewnętrznego podpisu instalacji Inno? Po raz trzeci ['here'] (http://blog.ksoftware.net/2011/07/how-to-automate-code-signing-withinnosetup-and-ksign/) jest samouczkiem opisującym, w jaki sposób aby to zrobić. To od resellera Comodo, więc powinni wiedzieć, o czym mówią. – TLama

+2

@TLama Twoja odpowiedź rozwiązuje mój problem. Postępowałem zgodnie z instrukcjami i kompilacją bez żadnego błędu. Dzięki wszystkim i dla facetów stojących za Ksign ... wszystko jest takie proste. – mtn

+1

http://revolution.screenstepslive.com/s/revolution/m/10695/l/95041-signing-installers-you-create-w-inno-setup –

0

Co zrobić, to całkiem proste, spróbuj śledzić allong

  1. Otwarte Inno Setup, a następnie wybierz Narzędzia-> Konfiguracja narzędzi logowania The sign tool dialog
  2. Kliknij "Dodaj ..." i nadaj mu nazwę, nazwijmy ją MsSign, ponieważ używam signtool.exe z Microsoft, powinieneś teraz mieć coś takiego: enter image description here
  3. Zostaniesz poproszony o wierszu poleceń narzędzia, którego używasz do podpisania, jak używam signtool.exe użyję

signtool.exe podpisać/tr http://timestamp.digicert.com/td sha256/fd sha256/a $ p

Zanotuj $ p na końcu, Inno Setup tego potrzebuje ... teraz powinno mieć to, a nie, że dodałem ścieżkę do signtool.exe w moje zmienne ścieżki i że używam czasu DigiCert serwer do sygnatury czasowej mojego podpisu.enter image description here

  1. W skrypcie, teraz dodać następujący kod do segmentu konfiguracji

    SignTool = MsSign $ F

tę linię, opowiada kompilator do podpisywania kodu, użyje zmiennej o nazwie MsSign i podpisze dane wyjściowe wygenerowane przez instalację.

powinno to wyglądać tak enter image description here

Kiedy patrzysz na wygenerowanym EXE widać podpis cyfrowy enter image description here

Teraz pracuje dla mnie, bo przygotowaliśmy mój sklep podpisu w taki sposób, że linia poleceń może uzyskać podpis i mam tylko jeden podpis szyfru, więc nie będę musiał go nazywać, twoje parametry mogą być inne niż moje i to jest w porządku, o ile w końcu twoja konfiguracja działa i twój kod zostaje podpisany.

nadzieję, że pomogło i pamiętać trzeba, że ​​$ p w zmiennej

Szczęśliwa Coding

Waltera