Mam plik EXE , który chciałbym podpisać, aby system Windows nie ostrzegał użytkownika końcowego o aplikacji od „nieznanego wydawcy”. Nie jestem programistą Windows. Omawiana aplikacja to wygaszacz ekranu generowany z aplikacji, która generuje aplikacje wygaszacza ekranu. W związku z tym nie mam wpływu na sposób generowania pliku.
Dowiedziałem się już, że będę potrzebować certyfikatu do podpisywania kodu z CA takiego jak Verisign lub instantssl.com. Nie rozumiem, co muszę zrobić (jeśli to w ogóle możliwe), aby podpisać plik EXE. Jakie jest proste wyjaśnienie?
Odpowiedź Mela Greena poszła dalej, ale signtool chce, abym sprecyzował, jakiego certyfikatu użyć w każdym przypadku. Czy mogę w jakiś sposób uzyskać bezpłatny certyfikat do podpisywania kodu, aby sprawdzić, czy to w ogóle zadziała?
Proszę również określić, który rodzaj certyfikatu jest prawidłowy. Większość witryn wspomina tylko o „podpisywaniu kodu” i mówi o podpisywaniu aplikacji, które są faktycznie kompilowane przez użytkownika. Nie dotyczy to mnie.
źródło
Odpowiedzi:
Możesz spróbować użyć narzędzia Microsoft Sign Tool
Można go pobrać jako część zestawu Windows SDK dla systemu Windows Server 2008 i .NET 3.5. Po pobraniu możesz go używać z wiersza poleceń w następujący sposób:
Powoduje to podpisanie pojedynczego pliku wykonywalnego przy użyciu „najlepszego dostępnego certyfikatu”. (Jeśli nie masz certyfikatu, wyświetli się komunikat o błędzie SignTool).
Lub możesz spróbować:
Spowoduje to uruchomienie kreatora, który przeprowadzi Cię przez proces podpisywania aplikacji. (Ta opcja nie jest dostępna po zestawach Windows SDK 7.0).
Jeśli chcesz uzyskać certyfikat, którego możesz użyć do przetestowania procesu podpisywania pliku wykonywalnego, możesz skorzystać z narzędzia .NET Makecert .
Narzędzie do tworzenia certyfikatów (Makecert.exe)
Po utworzeniu własnego certyfikatu i użyciu go do podpisania pliku wykonywalnego, musisz ręcznie dodać go jako zaufany główny urząd certyfikacji dla swojej maszyny, aby UAC poinformował użytkownika, który go uruchamia, że pochodzi z zaufanego źródła. Ważne . Zainstalowanie certyfikatu jako ROOT CA zagrozi prywatności użytkowników. Zobacz, co się stało z firmą DELL. Więcej informacji o tym, jak to osiągnąć, zarówno w kodzie, jak i za pośrednictwem systemu Windows, można znaleźć w:
Pytanie dotyczące przepełnienia stosu Zainstaluj certyfikaty w lokalnym magazynie certyfikatów użytkownika systemu Windows w języku C #
Instalowanie certyfikatu z podpisem własnym jako zaufanego głównego urzędu certyfikacji w systemie Windows Vista
Mamy nadzieję, że dostarczy to więcej informacji każdemu, kto spróbuje to zrobić!
źródło
Miałem ten sam scenariusz w mojej pracy i oto nasze ustalenia
Pierwszą rzeczą, którą musisz zrobić, to zdobyć certyfikat i zainstalować go na swoim komputerze, możesz kupić go w urzędzie certyfikacji lub wygenerować za pomocą makecert .
Oto zalety i wady dwóch opcji
Kup certyfikat
Wygeneruj certyfikat za pomocą Makecert
Podpisz plik wykonywalny
Istnieją dwa sposoby podpisania pliku, który chcesz:
Korzystanie z certyfikatu zainstalowanego na komputerze
signtool.exe sign / a / s MY / sha1 sha1_thumbprint_value / t http://timestamp.verisign.com/scripts/timstamp.dll / v "C: \ filename.dll"
Korzystanie z pliku certyfikatu
signtool sign / tr http://timestamp.digicert.com / td sha256 / fd sha256 / f "c: \ ścieżka \ do \ mycert.pfx" / p pfxpassword "c: \ ścieżka \ do \ file.exe"
Przetestuj swój podpis
Metoda 1: użycie signtool
Idź do: Start> Uruchom Wpisz CMD> kliknij OK W wierszu polecenia wprowadź katalog, w którym istnieje signtool Uruchom następujące polecenie:
signtool.exe weryfikacja / pa / v „C: \ filename.dll”
Metoda 2: Korzystanie z systemu Windows
Kliknij podpisany plik prawym przyciskiem myszy Wybierz Właściwości Wybierz kartę Podpisy cyfrowe. Podpis zostanie wyświetlony w sekcji Lista podpisów.
Mam nadzieję, że to ci pomoże
Źródła:
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/ms537361(v=vs.85)
https://www.digicert.com/code-signing/signcode-signtool-command-line.htm
https://knowledge.symantec.com/support/code-signing-support/index?page=content&id=SO15544&actp=search&viewlocale=en_US
https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx
źródło
Możesz otrzymać
bezpłatny,tani certyfikat do podpisywania kodu od Certum, jeśli tworzysz oprogramowanie typu open source.Używam ich certyfikatu od ponad roku i pozwala pozbyć się nieznanej wiadomości wydawcy z systemu Windows.
Do podpisywania kodu używam signtool.exe ze skryptu takiego:
źródło
Magazyn ASP ASPects zawiera szczegółowy opis sposobu podpisywania kodu (aby przeczytać artykuł, musisz być członkiem). Możesz go pobrać ze strony http://www.asp-shareware.org/
Oto link do opisu, w jaki sposób możesz stworzyć własny certyfikat testowy .
To też może być interesujące.
źródło
Inną opcją, jeśli chcesz podpisać plik wykonywalny na komputerze z systemem Linux, jest użycie kodu sygnaturowego z narzędzi projektu Mono . Jest obsługiwany w systemie Ubuntu .
źródło
Odniesienie https://steward-fu.github.io/website/driver/wdm/self_sign.htm Uwaga: signtool.exe z Microsoft SDK
1. pierwszy raz (aby zrobić prywatny certyfikat)
Makecert -r -pe -ss YourName YourName.cer
certmgr.exe -add YourName.cer -s -r localMachine root
2.Po (aby dodać swój znak do aplikacji)
signtool sign / s YourName YourApp.exe
źródło
I jeszcze jedna opcja, jeśli tworzysz w systemie Windows 10, ale nie masz zainstalowanego signtool.exe firmy Microsoft, możesz użyć Bash w systemie Ubuntu w systemie Windows, aby podpisać swoją aplikację. Oto wyczerpanie:
https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/
źródło
osslsigncode
jest również dostępny podcygwin
, więc jeśli już go używasz (tak jak ja), możesz zalogować się w swoim obecnym środowisku, zamiast przełączać się na WSL.Użyj poniższego linku, aby podpisać plik .exe (Instalator / Instalator) (Podpisz plik exe / Instalatora bez użycia narzędzia instalacyjnego Microsoft)
https://ebourg.github.io/jsign/#files
przykładowe polecenie java -jar jsign-2.0.jar --keystore keystore.jks "--alias alias --storepass hasło MyInstaller.exe
Pracował dla mnie :)
źródło
Nie jest to bezpośrednia odpowiedź na to pytanie, ale jest ściśle powiązane (i mam nadzieję, że przydatne), ponieważ prędzej czy później programista włoży rękę do portfela:
Ceny za podpis EV:
1 rok 350 USD + (ukryta opłata 50 USD)
2 lata 600 USD
3 lata 750 USD
[www.ksoftware.net] [3]
eToken wysyłany jako pamięć USB. Nie potrzeba żadnego czytnika.
Rzeczywiście kupujesz od Comodo (Sectigo)
1 rok 350 euro
3 rok 799 euro
sklep.certum.pl
1 rok 499 USD
3 lata 897 USD
sectigo.com
1 rok 410 $ łącznie
2 lata 760 $ łącznie
3 lata 950 $ łącznie
www.globalsign.com
1 rok: 600 $ (było 104 $)
3 rok:?
www.digicert.com
1 rok: 700 USD
3 lata: absurdalnie drogie
[ https://trustcenter.websecurity.symantec.com/]
Więcej cen tutaj:
https://cheapsslsecurity.com/sslproducts/codesigningcertificate.html
Zobacz także link dodany przez Ericka Castrillo: cheapsslsecurity.com/sslproducts/codesigningcertificate.html
źródło