Podpisywanie kodu Microsoft Authenticode w systemie Linux za pomocą Jsign

znak J to otwarte, niezależne od platformy narzędzie Java do podpisywania kodu Microsoft Authenticode. Jsign można łatwo zintegrować z systemami kompilacji, takimi jak Maven, Gradle i Ant, lub można go używać bezpośrednio z wiersza poleceń.

W tym poradniku omówimy używanie znak J z wiersza poleceń systemu Linux dla Podpisywanie kodu OV / IV i Podpisywanie kodu EV. Ponieważ Jsign jest oparty na Javie, można go również używać w systemach Windows i MacOS.

Zainstaluj Jsign

Najpierw musisz pobrać i zainstalować Jsign. Plik Witryna Jsign zawiera łącza do pakietów Debiana i RPM ułatwiających instalację w większości popularnych systemów Linux, a także plik .jar plik.

Podpisywanie kodu OV / IV

Ta sekcja dotyczy tylko certyfikatów podpisywania kodu z walidacją indywidualną (IV) i walidacją organizacji (OV), które zostały zamówione przed 1 czerwca 2023 r. Od 1 czerwca 2023 r., rozpoczęto wydawanie certyfikatów podpisywania kodu SSL.com IV i OV na tokenach USB Federal Information Processing Standard 140-2 (FIPS 140-2) lub za pośrednictwem naszej usługi podpisywania kodu w chmurze eSigner. 

Do podpisywania kodu OV/IV można użyć certyfikatu przechowywanego w magazynie kluczy Java lub pliku PKCS#12 (PFX). We wszystkich poniższych przykładach kodu zamień wartości wyświetlane wielkimi literami na rzeczywiste wartości.

  1. Najpierw użyj keytool polecenie, aby pobrać plik alias wartość do użycia podczas podpisywania:
    keytool -list -v -keystore PKCS12-PLIK.p12 -typ sklepu PKCS12 -storepass PKCS12-HASŁO
  2. Sprawdź wyjście swojego keytool polecenie dla wiersza zaczynającego się od Alias name:.
    Typ magazynu kluczy: PKCS12 Dostawca magazynu kluczy: SUN Twój magazyn kluczy zawiera 1 wpis Nazwa aliasu: 1 Data utworzenia: 18 stycznia 2021 r. Typ wpisu: PrivateKeyEntry Długość łańcucha certyfikatów: 4 ...

    W powyższym przykładzie Alias name is 1.

  3. Użyj polecenia podobnego do poniższego, aby podpisać plik i oznaczyć go datą:
    • jsign polecenie zainstalowane w całym systemie:
      jsign --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 PLIK DO PODPISU
    • Dzięki Jsigner .jar file:
      java -jar jsign-3.1.jar --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO- ZNAK
  4. Jeśli polecenie się powiedzie, powinieneś zobaczyć następujące dane wyjściowe:
    Dodanie podpisu Authenticode do example.exe
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.

Podpisywanie kodu EV

Możesz również użyć Jsign z certyfikatem do podpisywania kodu EV. W tym przykładzie użyto SSL.com Certyfikat podpisywania kodu EV zainstalowany na Klucz bezpieczeństwa z certyfikatem FIPS 140-2 Token USB.

  1. Po pierwsze, upewnij się, że OpenSC jest zainstalowany w Twoim systemie, aby mógł komunikować się z Twoim tokenem za pośrednictwem interfejsu API PKCS # 11. W dystrybucjach opartych na Debianie, takich jak Ubuntu, możesz zainstalować OpenSC z apt:
    sudo apt zainstaluj opensc
  2. Następnie utwórz plik konfiguracyjny. Nazwa pliku jest dowolna, ale w przykładowych poleceniach poniżej użyjemy eToken.cfg. Zwróć uwagę, że ścieżka do opensc-pkcs11.so może się różnić w Twojej instalacji OpenSC, więc sprawdź przed utworzeniem pliku konfiguracyjnego.
    name = OpenSC-PKCS11 description = SunPKCS11 przez bibliotekę OpenSC = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
  3. Użyj keytool polecenie, aby pobrać plik alias wartość do użycia podczas podpisywania:
    keytool -list -v -keystore BRAK -storetype PKCS11 -storepass TOKEN-PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
  4. Sprawdź wyjście swojego keytool polecenie dla wiersza zaczynającego się od Alias name:. Jeśli Twój token zawiera wiele certyfikatów, sprawdź daty ważności i wystawcę w danych wyjściowych z certyfikatem. Zwróć uwagę, że certyfikaty do podpisywania kodu EV wydane na YubiKey z SSL.com powinny mieć alias Certificate for PIV Authentication.
    Nazwa aliasu: Certyfikat dla uwierzytelniania PIV Typ wpisu: PrivateKeyEntry Długość łańcucha certyfikatu: 1 Certyfikat [1]: Właściciel: OID.1.3.6.1.4.1.311.60.2.1.3 = USA, OID.1.3.6.1.4.1.311.60.2.1.2 .2.5.4.15 = Nevada, OID 20081614243 = Organizacja prywatna, CN = SSL Corp, SERIALNUMBER = NV2, O = SSL Corp, L = Houston, ST = TX, C = US Wystawca: CN = SSL.com EV Code Signing Intermediate CA RSA R7299, O = SSL Corp, L = Houston, ST = Texas, C = US Numer seryjny: 93f57a3bac6570c781580f63172e17 Ważne od: piątek 12 kwietnia 46:04:2020 EDT 17 do: sob. 12 kwietnia 46:04:2021 EDT XNUMX
  5. Użyj polecenia podobnego do poniższego, aby podpisać plik i oznaczyć go datą:
    • jsign polecenie zainstalowane w całym systemie:
      jsign --keystore eToken.cfg --alias "Certyfikat uwierzytelniania PIV" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 PLIK DO PODPISU
    • Dzięki Jsigner .jar file:
      java -jar jsign-3.1.jar --keystore eToken.cfg --alias "Certyfikat uwierzytelniania PIV" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 PLIK -PODPISAĆ
  6. Jeśli polecenie się powiedzie, powinieneś zobaczyć następujące dane wyjściowe:
    Dodanie podpisu Authenticode do example.exe
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.

Zweryfikuj podpis cyfrowy

  1. Możesz sprawdzić, czy Twój podpis cyfrowy jest ważny, przeglądając szczegóły podpisu w systemie Windows.
    Podpis cyfrowy jest w porządku
  2. Można również użyć ZnakNarzędzie w systemie Windows, aby zweryfikować podpis cyfrowy.
    signtool.exe weryfikacja / pa 'C: \ Users \ Aaron Russell \ Desktop \ example.exe' Plik: C: \ Users \ Aaron Russell \ Desktop \ example.exe Indeks algorytmu Sygnatura czasowa =========== ============================= 0 sha256 RFC3161 Pomyślnie zweryfikowano: C: \ Users \ Aaron Russell \ Desktop \ example.exe

Zapisz się do newslettera SSL.com

Nie przegap nowych artykułów i aktualizacji z SSL.com

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.