Korzystanie z certyfikatu do podpisywania kodu

Jak korzystać z certyfikatu do podpisywania kodu OV lub EV za pomocą SignTool firmy Microsoft i SSL.com SSL Manager aplikacji.

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.

OV i Certyfikatów do podpisywania kodu EV nie należy instalować ręcznie na komputerze, co może powodować problemy z konfiguracją. Certyfikaty dostarczane na YubiKeys z SSL.com mogą być używane bez dodatkowej instalacji poza instalacją Minidriver do kart inteligentnych YubiKey i podłączenie tokena do komputera. Certyfikaty zamawiane przez zdalne poświadczenie należy pobrać i zainstalować na urządzeniu zawierającym klucz prywatny (np. YubiKey FIPS lub inny obsługiwany sprzęt), a nie w magazynie certyfikatów komputera.
Jeśli planujesz podpisać sterowniki systemu Windows 10 certyfikatem do podpisywania kodu EV, musisz to zrobić zarejestrować z programem Windows Hardware Developer.
Aby uzyskać instrukcje dotyczące korzystania z certyfikatu do podpisywania kodu OV / IV lub EV z Javą, zapoznaj się z naszym Podręcznik podpisywania kodu Java.

Podpisywanie pliku wykonywalnego za pomocą Yubikey

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.

W razie zamówieenia projektu 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”
  • Opona /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.
  • Opona /a opcja nakazuje SignTool automatyczne znalezienie odpowiedniego certyfikatu do podpisywania kodu dla pliku wykonywalnego.
  • Zostaniesz poproszony o podanie kodu PIN tokena USB. Jeśli potrzebujesz pomocy w znalezieniu kodu PIN, zapoznaj się z sekcją to instrukcje.Wpisz PIN
Uwaga: Jeśli podpisujesz pliki kodu, które zostaną uwzględnione w instalatorze (na przykład plik MSI systemu Windows), musisz podpisać te pliki przed utworzeniem instalatora, a następnie podpisać sam plik instalatora.

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 można znaleźć za pomocą narzędzia do zarządzania certyfikatami firmy Microsoft certmgr. Otwórz narzędzie z menu Start i poszukaj swojego certyfikatu w folderze „Osobiste”, w sekcji „Certyfikaty”, jak pokazano na obrazku poniżej. Nazwa podmiotu znajduje się w polu „Wydano dla” w pliku 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"
Uwaga: Pamiętaj, aby użyć SignTool's /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.
Uwaga: Opona /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.
Uwaga: Domyślnie SSL.com obsługuje znaczniki czasu z kluczy ECDSA.

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, /sha1lub /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.

Podpisy cyfrowe

Tutaj widzimy, że plik zawiera ważny podpis cyfrowy, utworzony przez SSL Corp 28 czerwca 2020 r.

Szczegóły podpisu cyfrowego

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.

Pakiet kodu podpisu i znacznika czasu

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 przycisk do podpisania kodu. 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.

Podpisywanie kodu za pomocą tokena USB Thales SafeNet (Gemalto).

Uwaga: SSL.com dostarcza tokeny Thales SafeNet z preinstalowanymi certyfikatami do podpisywania kodu. Nie usuwaj żadnych materiałów z tokena.

W tej sekcji pokazano, jak podpisywać kod przy użyciu certyfikatu podpisywania kodu SSL.com, tokena USB Thales SafeNet (Gemalto) i klienta uwierzytelniania Safenet. 

Token Thales SafeNet może przechowywać wszystkie typy certyfikatów podpisywania kodu SSL.com i ich klucze prywatne. Należą do nich certyfikaty podpisywania kodu tożsamości osobistej, certyfikaty podpisywania kodu w ramach walidacji organizacji i certyfikaty podpisywania kodu w ramach funkcji Extended Validation.

Klient uwierzytelniania SafeNet to rozwiązanie warstwy pośredniej, które obsługuje kompleksową ofertę rozwiązań uwierzytelniających Thales SafeNet opartych na certyfikatach. Obejmuje to eTokeny, karty inteligentne SafeNet IDPrime, SafeNet IDPrime Virtual i kombinacje PKI/Urządzenia FIDO.

Instrukcje dotyczące zmiany hasła do podpisywania kodu dla tokenów Thales SafeNet (Gemalto) lub odzyskiwania dostępu do zablokowanego tokena można znaleźć w tym artykule SSL.com: Jak zmienić hasło do tokena Thales SafeNet/Gemalto

wymagania

  1. Zestaw deweloperski systemu Windows zainstalowany na twoim komputerze
  2. SafeNet Authentication Client zainstalowany na Twoim komputerze. Instrukcje znajdziesz w tym przewodniku SSL.com: Pobierz klienta uwierzytelniania SafeNet dla certyfikatów podpisywania kodu
  3. Token Thales SafeNet zawierający preinstalowany certyfikat podpisywania kodu SSL.com. Token Thales SafeNet należy aktywować, wykonując następujące kroki: 
    1. Znajdź numer seryjny swojego tokena Thales. Jest to ciąg liter i cyfr wydrukowanych na powierzchni Twojego tokena. 
    2. Zaloguj się na swoje konto SSL.com.
    3. Kliknij Zamówienia kartę, po której następuje pobieranie link do zamówienia certyfikatu, aby wyświetlić jego szczegóły. Na fizyczne tokeny sekcji, aktywuj swój token Thales, umieszczając jego numer seryjny w wyznaczonym polu. Po aktywacji tokena Thales, fizyczne tokeny sekcja wyświetli Twoje Aktywacja PIN-u i PIN administratora, PIN administratora jest również znany jako Hasło tokenowe i zostaniesz poproszony o wprowadzenie tego podczas podpisywania pliku. 

Kroki, aby podpisać kod tokenem Thales SafeNet

  1. Podłącz Token Thales SafeNet na Twój komputer. 
  2. Otwarte Klient uwierzytelniania Safenet.
  3. Skonfiguruj polecenie do podpisywania kodu:
    narzędzie do znakowania znak /tr http://ts.ssl.com /td sha256 /fd sha256 /a "PATH_OF_FILE_TO_BE_SIGNED"
    Legenda:
    / fd sha256 wybiera algorytm podsumowania, który będzie używany podczas podpisywania.
    /tr http://ts.ssl.com określa adres serwera znaczników czasu
    /td sha256 określa algorytm skrótu znacznika czasu
    /a instruuje SignTool, aby automatycznie znalazł odpowiedni certyfikat podpisywania kodu dla Twojego pliku.

    możliwa do podpisania ścieżka pliku: Ścieżka pliku powinna być ujęta w podwójny cudzysłów.
    Pamiętaj, aby w ścieżce podać nazwę pliku, który można podpisać. Przykład: /plik testowy.dll

    Note: Niektórzy użytkownicy mogą doświadczyć tego błędu przy poleceniu podpisania: „Signtool” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy. Rozwiązaniem tego błędu jest usunięcie tekstu narzędzie do znakowania z polecenia i zastąp go ścieżką do pliku Signtool.exe. Ścieżkę należy ująć w podwójny cudzysłów.
    Znak „C:\Program Files (x86)\Windows Kits\10\folder\folder\x86\signtool.exe” /tr http://ts.ssl.com/ /td sha256 /fd sha256 /a „C:\ Użytkownicy\Admin\Dokumenty\pliki testowe\plik testowy.dll"
  4. run Wiersz polecenia jako administrator i umieść polecenie podpisania. Następnie naciśnij Wchodzę.

  5. Zobaczysz wiadomość Zakończono dodawanie dodatkowego sklepu. Wkrótce po, zostaniesz poproszony o umieszczenie swojego Hasło tokenowe. Jak stwierdzono w wymagania w sekcji powyżej, Hasło Tokena jest takie samo jak hasło PIN administratora można to sprawdzić na stronie zamówienia certyfikatu SSL.com. Kliknij OK aby zakończyć podpisywanie kodu.

  6. Sukces! Twój plik jest teraz podpisany. Wiersz poleceń powiadomi Cię o pomyślnym podpisaniu. 

Opcje kodu podpisującego

1. Określ nazwę podmiotu certyfikatu

Jeśli posiadasz wiele tokenów lub certyfikatów USB do podpisywania kodu, możesz wybrać, którego konkretnego certyfikatu chcesz użyć, włączając jego nazwę podmiotu za pomocą opcji /n.

Nazwę podmiotu certyfikatu możesz wyświetlić, klikając ikonę koła zębatego w kliencie uwierzytelniania SafeNet, aby włączyć widok zaawansowany. Następnie kliknij strzałkę dla Certyfikaty użytkownika aby wyświetlić wszystkie certyfikaty zainstalowane w tokenie. Skopiuj nazwę certyfikatu, którego chcesz użyć.

Polecenie znak za pomocą /n opcja wygląda następująco. Nazwa podmiotu certyfikatu powinna być ujęta w podwójny cudzysłów. 

Znak „PATH OF SIGNTOOL.EXE” /tr http://ts.ssl.com/ /td sha256 /fd sha256 /n „NAZWA TEMATU CERTYFIKATU” „PATH_OF_FILE_TO_BE_SIGNED”

2. Określ odcisk palca certyfikatu

Jeśli posiadasz kilka certyfikatów o identycznej nazwie podmiotu, możesz rozróżnić i wybrać jeden do podpisania, korzystając z jego skrótu SHA1, zwanego powszechnie „odciskiem palca”. Aby to zrobić, zastąp ODCISK KCIUKA w poniższym poleceniu rzeczywisty skrót SHA1 certyfikatu.

Możesz wyświetlić wartość odcisku palca swojego certyfikatu, klikając ikonę koła zębatego w kliencie uwierzytelniania SafeNet, aby włączyć widok zaawansowany. Następnie kliknij strzałkę dla Certyfikaty użytkownika. Kliknij dwukrotnie certyfikat, którego chcesz użyć. Kliknij Szczegóły patka. Na koniec przewiń w dół do Odcisk kciuka pole. 


W poleceniu znaku zamień tekst ODCISK KCIUKA z rzeczywistą wartością odcisku palca certyfikatu. 

Znak „PATH OF SIGNTOOL.EXE” /tr http://ts.ssl.com/ /td sha256 /fd sha256 /SHA1 THUMBPRINT „PATH_OF_FILE_TO_BE_SIGNED”

Sprawdź podpis

Możesz sprawdzić zastosowany podpis cyfrowy, klikając podpisany plik prawym przyciskiem myszy, aby zobaczyć jego właściwości. 

  1. Kliknij Podpisy cyfrowe patka. Najedź myszką na Lista podpisów i kliknij wyświetlaną nazwę certyfikatu, aby ją podświetlić. Kliknij Szczegóły pole, aby kontynuować. 

  2. Będziesz mógł zobaczyć nazwę certyfikatu użytego do podpisania pliku, a także datę i godzinę podpisania oraz sygnaturę czasową.

Dziękujemy za wybranie SSL.com! W razie jakichkolwiek pytań prosimy o kontakt mailowy pod adresem Support@SSL.com, połączenie 1-877-SSL-SECURElub po prostu kliknij link czatu w prawym dolnym rogu tej strony.

Bądź na bieżąco i bezpiecznie

SSL.com jest światowym liderem w dziedzinie cyberbezpieczeństwa, PKI i certyfikaty cyfrowe. Zarejestruj się, aby otrzymywać najnowsze wiadomości branżowe, wskazówki i ogłoszenia o produktach od SSL.com.

Będziemy wdzięczni za Twoją opinię

Weź udział w naszej ankiecie i daj nam znać, co myślisz o swoim ostatnim zakupie.