Ta strona internetowa zawiera instrukcje dotyczące korzystania z SSL.com OV or EV certyfikat podpisywania kodu za pomocą SignTool firmy Microsoft i SSL.com SSL Manager.
W tych instrukcjach przyjęto założenie, że certyfikat podpisywania kodu został zainstalowany lub że masz go na tokenie sprzętowym. Aby uzyskać informacje na temat podpisywania kodu w chmurze przy użyciu platformy eSigner, zapoznaj się z sekcją strona przegląd i to przewodnik rejestracji.
Pamiętaj, że dla sprzętowych certyfikatów podpisywania kodu OV i EV klucz prywatny istnieje tylko na tokenie USB YubiKey FIPS to zostało wysłane do ciebie i że token musi być dołączony na komputerze używanym do podpisywania aplikacji. Użytkownicy systemu Windows z tokenami YubiKey FIPS powinni również pobrać i zainstalować Minidriver do kart inteligentnych YubiKey przed użyciem ich tokena.
Podpisywanie pliku wykonywalnego za pomocą SignTool
Zainstalować Windows SDK i SignTool
SignTool jest dołączony do Zestaw Windows 10 SDK. Po instalacji SignTool będzie znajdować się pod:
C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ \ x64 \ signtool.exe
Start PowerShell
Początek PowerShell okno poleceń, wyszukując „Powershell” w pliku Start menu i kliknięcie aplikacji komputerowej.
Powershell to interfejs wiersza poleceń do podstawowych usług systemu Windows. Możesz go użyć do wykonania SignTool i podpisania swojego kodu.
Dla EV kod podpisując, podłącz token USB do komputera (jeśli jeszcze tego nie zrobiłeś). Jeśli używasz eSigner, zainstaluj Adapter klucza chmury eSigner
Pamiętaj, że klucz prywatny istnieje tylko na tokenie USB, który został do Ciebie przesłany token musi być dołączony na komputer używany do podpisania aplikacji. Ten krok należy pominąć, jeśli używasz certyfikatu do podpisywania kodu OV.
Znak Plik wykonywalny
Możesz podpisać plik wykonywalny, wydając następujące polecenie w oknie Powershell. Jeśli używasz podpisu eSigner w chmurze z signtool.exe, pamiętaj, aby zainstalować e-podpis CKA
. \ signtool.exe sign / fd sha256 / a „C: \ ścieżka \ do \ MyExecutable.exe”
- Połączenia
/fd
Opcja wybiera algorytm skrótu do użycia podczas podpisywania. Windows 10 SDK, HLK, WDK i kompilacje ADK 20236 i wyżej wymagają ustawienia tej opcji podczas podpisywania. SHA256 jest zalecany przez SHA1 ze względów bezpieczeństwa. - Połączenia
/a
opcja nakazuje SignTool automatyczne znalezienie odpowiedniego certyfikatu do podpisywania kodu dla pliku wykonywalnego. - Jeśli korzystasz z certyfikatu podpisującego kod EV, zostaniesz poproszony o podanie kodu PIN tokena USB. Jeśli potrzebujesz pomocy w znalezieniu kodu PIN, zapoznaj się z to instrukcje.
Wybór certyfikatu podpisywania
Określ nazwę podmiotu
Jeśli masz zainstalowany więcej niż jeden token USB podpisujący kod lub certyfikaty, możesz to zrobić podać certyfikat chcesz użyć, włączając to Nazwa przedmiotu za pośrednictwem /n
opcja.
Nazwę podmiotu certyfikatu EV CS można znaleźć za pomocą narzędzia firmy Microsoft do zarządzania certyfikatami certmgr. Otwórz narzędzie z menu Start i poszukaj swojego certyfikatu EV CS w folderze „Osobiste” w sekcji „Certyfikaty”, jak pokazano na poniższym obrazku. Nazwa podmiotu to pole „Issued To” w certmgr.
Na powyższym obrazku Nazwa podmiotu certyfikatu to example
. Możesz określić tę wartość w SignTool za pomocą następującego polecenia.
. \ signtool.exe sign / fd sha256 / n "przykład" "C: \ ścieżka \ do \ MyExecutable.exe"
Określ skrót SHA1
Jeśli masz wiele certyfikatów z tą samą nazwą podmiotu, możesz również użyć skrótu SHA1 (lub „odcisku palca”) certyfikatu, aby wybrać go do podpisania. Zastąpić THUMBPRINT
w poniższym poleceniu z aktualnym skrótem SHA1 Twojego certyfikatu. Możesz znaleźć tę wartość, przeglądając szczegóły certyfikatu w certmgr i wyszukując plik Thumbprint
pole (pamiętaj i usuń wszelkie znaki spacji z odcisku palca przed użyciem go w poleceniu).
. \ signtool.exe sign / fd sha256 / sha1 THUMBPRINT "C: \ ścieżka \ do \ MyExecutable.exe"
Użyj pliku PKCS # 12 / PFX
Jeśli masz certyfikat podpisujący kod i klucz prywatny w pliku PKCS # 12 (znanym również jako plik PFX lub P12), możesz określić plik i jego hasło w wierszu poleceń:
. \ signtool.exe sign / fd sha256 / f "C: \ ścieżka \ do \ MyCertificate.pfx" / p hasło "C: \ ścieżka \ do \ MyExecutable.exe"
Znacznik czasowy
Znacznik czasu w kodzie pozwoli mu być zaufanym po wygaśnięciu certyfikatu podpisującego kod. Jeśli chcesz dodać znak czasu w podpisanym pliku binarnym, możesz to zrobić za pomocą SignTool's /tr
opcji, po której należy ustawić algorytm skrótu sygnatury czasowej za pomocą /td
. Polecenie w poniższym fragmencie zawiera sygnaturę czasową od SSL.comusługa znacznika czasu podczas podpisywania pliku wykonywalnego.
. \ signtool.exe sign / fd sha256 / tr http://ts.ssl.com / td sha256 / a "C: \ ścieżka \ do \ MyExecutable.exe"
/tr
opcja (podaj adres URL serwera znaczników czasu RFC 3161), nie /t
(Adres URL serwera znaczników czasu), który jest niezgodny z serwerem znaczników czasu SSL.com./td
opcja musi Podążaj za /tr
opcja. Jeśli algorytm skrótu znacznika czasu zostanie określony przed serwerem znacznika czasu, zostanie użyty domyślny algorytm SHA-1. Windows 10 SDK, HLK, WDK i kompilacje ADK 20236 i wyżej wymagają użycia /tr
podczas oznaczania czasu. Ze względów bezpieczeństwa zalecany jest SHA256 zamiast SHA1.Jeśli napotkasz ten błąd:
The timestamp certificate does not meet a minimum public key length requirement
, należy skontaktować się z dostawcą oprogramowania, aby zezwolił na sygnatury czasowe z kluczy ECDSA.Jeśli nie ma możliwości, aby dostawca oprogramowania zezwolił na użycie normalnego punktu końcowego, możesz użyć tego starszego punktu końcowego
http://ts.ssl.com/legacy
aby uzyskać znacznik czasu z jednostki znacznika czasu RSA.Inne opcje
Inne ważne opcje SignTool to:
/d
: Dodaj opis podpisanego kodu. Na przykład,/d "test code"
./du
: Dodaj adres URL z rozszerzonym opisem podpisanego kodu. Na przykład,/du https://your_website.tld/project/description
.
Korzystanie ze wszystkich powyższych opcji (z pominięciem /a
, /sha1
lub /f
ponieważ nazwę podmiotu certyfikatu określamy za pomocą /n
, nasza linia poleceń wygląda następująco:
signtool.exe sign / n "example" / fd sha256 / tr http://ts.ssl.com / td sha256 / d "test code" / du https: //twoja_witryna.tld/project/description "C: \ ścieżka \ do \ MyExecutable.exe "
Zweryfikuj podpis
Użyj tego polecenia, aby zweryfikować podpisany kod (zwróć uwagę, że plik /pa
opcja musi być obecna w poleceniu):
. \ signtool.exe weryfikacja / pa "C: \ ścieżka \ do \ MyExecutable.exe"
Jeśli twój plik został pomyślnie podpisany, powinieneś zobaczyć takie dane wyjściowe:
Plik: C: \ ścieżka \ do \ MyExecutable.exe Indeks algorytmu Sygnatura czasowa ===================================== ===== 0 sha256 RFC3161 Pomyślnie zweryfikowano: C: \ ścieżka \ do \ MyExecutable.exe
Możesz również sprawdzić, czy plik został podpisany, klikając prawym przyciskiem myszy jego ikonę i wybierając Właściwości z menu, a następnie wybierając plik Podpisy cyfrowe patka. Wyświetl szczegóły dotyczące podpisu, zaznaczając go i klikając Szczegóły przycisk.
Tutaj widzimy, że plik zawiera ważny podpis cyfrowy, utworzony przez SSL Corp 28 czerwca 2020 r.
Podpisywanie pliku wykonywalnego za pomocą SSL Manager
Jeśli wolisz podejście oparte na grafice, możesz użyć SSL.comwłasne oprogramowanie, SSL Manager, aby podpisać swoje pliki. Wielu klientów woli z nich korzystać SSL Manager ponieważ oferuje dodatkową korzyść w postaci łatwego dostępu do wszystkich certyfikatów w jednym ujednoliconym interfejsie. Aby uzyskać instrukcje dotyczące pobierania i instalowania SSL Manager, zapoznaj się z naszym przewodnik instalacji.
Aby podpisać plik wykonywalny, zacznij od wybrania Podpisywanie kodu> Pakiet kodu podpisu i znacznika czasu od SSL Managermenu.
W formularzu podpisywania kodu możesz wybrać plik wykonywalny i certyfikat podpisu kodu (z pliku lub magazynu certyfikatów) i jeden z dostępnych serwerów znaczników czasu. Po zakończeniu kliknij Znak aby podpisać kod. Jeśli ładujesz certyfikat z pliku PFX, będziesz musiał wprowadzić hasło do pliku. Jeśli korzystasz z certyfikatu podpisującego kod EV, zostaniesz poproszony o podanie kodu PIN tokena USB.
Oprócz podpisywania kodu, SSL Manager oferuje wiele zaawansowanych funkcji. Aby uzyskać więcej informacji, zobacz SSL Managerdokumentacja, szczególnie Menu podpisywania kodu.