SSL.com

Microsoft Authenticode Code Signing i Linux med Jsign

Jsign är ett öppen källkod, plattformsoberoende Java-verktyg för Microsoft Authenticode-kodsignering. Jsign är lätt att integrera med byggsystem som Maven, Gradle och Ant eller kan användas direkt från kommandoraden.

I den här instruktionen täcker vi användning Jsign från Linux-kommandoraden för OV / IV-kodsignering och EV-kodsignering. Eftersom Jsign är Java-baserat kan du också använda det på Windows- och MacOS-system.

Installera Jsign

Först måste du ladda ner och installera Jsign. De Jsign webbplats innehåller länkar till Debian- och RPM-paket för enkel installation på de flesta populära Linux-systemen, samt en .jar fil.

OV / IV-kodsignering

Detta avsnitt gäller endast för kodsigneringscertifikat för individuell validering (IV) och organisationsvalidering (OV) som beställdes före 1 juni 2023. Från och med 1 juni 2023, SSL.coms IV- och OV-kodsigneringscertifikat har börjat utfärdas antingen på Federal Information Processing Standard 140-2 (FIPS 140-2) USB-tokens eller genom vår eSigner molnkodsigneringstjänst. 

För OV/IV-kodsignering kan du använda ett certifikat lagrat i ett Java-nyckellager eller PKCS#12 (PFX)-fil. I alla kodexempel nedan, ersätt värdena som visas i ALL-CAPS med dina faktiska värden.

  1. Använd först keytool kommando för att få alias värde att använda vid signering:
    keytool -list -v -keystore PKCS12-FILE.p12 -storetype PKCS12 -storepass PKCS12-LÖSENORD
  2. Kontrollera utdata från din keytool kommando för en rad som börjar med Alias name:.
    Keystore-typ: PKCS12 Keystore-leverantör: SUN Din keystore innehåller 1 post Aliasnamn: 1 Skapningsdatum: 18 jan 2021 Posttyp: PrivateKeyEntry Certifikatkedjelängd: 4 ...

    I exemplet ovan, Alias name is 1.

  3. Använd ett kommando som följande för att signera och tidsstämpla en fil:
    • jsign kommando installerat hela systemet:
      jsign --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-LÖSENORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FIL-TILL-SIGN
    • Med Jsigner .jar fil:
      java -jar jsign-3.1.jar --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-LÖSENORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO- TECKEN
  4. Om ditt kommando lyckas bör du se utdata på följande sätt:
    Lägger till Authenticode-signatur till exempel.exe
Notera: Som standard stöder SSL.com tidsstämplar från ECDSA-nycklar.

Om du stöter på det här felet: The timestamp certificate does not meet a minimum public key length requirement, bör du kontakta din programvaruleverantör för att tillåta tidsstämplar från ECDSA-nycklar.

Om det inte finns något sätt för din programvaruleverantör att tillåta att den normala slutpunkten används, kan du använda denna äldre slutpunkt http://ts.ssl.com/legacy för att få en tidsstämpel från en RSA Timestamping Unit.

EV-kodsignering

Du kan också använda Jsign med ett EV-kodsigneringscertifikat. Exemplet här använder en SSL.com EV-kodsigneringscertifikat installerad på en FIPS 140-2 validerad säkerhetsnyckel USB-token.

  1. Kontrollera först det OpenSC är installerat på ditt system så att det kan kommunicera med din token via PKCS # 11 API. På Debian-baserade distributioner som Ubuntu kan du installera OpenSC med apt:
    sudo apt installerar opensc
  2. Skapa sedan en konfigurationsfil. Filens namn är godtyckligt, men för exemplet nedan använder vi kommandona eToken.cfg. Observera att vägen till opensc-pkcs11.so kan variera i din OpenSC-installation, så kontrollera innan du skapar konfigurationsfilen.
    namn = OpenSC-PKCS11 beskrivning = SunPKCS11 via OpenSC-bibliotek = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
  3. Använd keytool kommando för att få alias värde att använda vid signering:
    nyckelverktyg -list -v -nyckelbutik INGEN -stortyp PKCS11 -lagringspass TOKEN -PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
  4. Kontrollera utdata från din keytool kommando för en rad som börjar med Alias name:. Om din token innehåller flera certifikat, kontrollera giltighetsdatum och utfärdare i utdata mot ditt certifikat. Observera att EV-kodsigneringscertifikat utfärdat på YubiKey från SSL.com bör ha ett aliasnamn Certificate for PIV Authentication.
    Aliasnamn: Certifikat för PIV-autentisering Inmatningstyp: PrivateKeyEntry Certifikatkedjelängd: 1 Certifikat [1]: Ägare: OID.1.3.6.1.4.1.311.60.2.1.3 = US, OID.1.3.6.1.4.1.311.60.2.1.2 .2.5.4.15 = Nevada, OID.20081614243 = Privat organisation, CN = SSL Corp, SERIALNUMBER = NV2, O = SSL Corp, L = Houston, ST = TX, C = USA Utgivare: CN = SSL.com EV Kodsignering Mellanliggande CA RSA R7299, O = SSL Corp, L = Houston, ST = Texas, C = USA Serienummer: 93f57a3bac6570c781580f63172e17 Gäller från: Fre Apr 12 46:04:2020 EDT 17 till: Lör 12 Apr 46:04:2021 EDT XNUMX
  5. Använd ett kommando som följande för att signera och tidsstämpla en fil:
    • jsign kommando installerat hela systemet:
      jsign --keystore eToken.cfg --alias "Certificate for PIV Authentication" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
    • Med Jsigner .jar fil:
      java -jar jsign-3.1.jar --keystore eToken.cfg --alias "Certificate for PIV Authentication" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FIL -ATT SKRIVA UNDER
  6. Om ditt kommando lyckas bör du se utdata på följande sätt:
    Lägger till Authenticode-signatur till exempel.exe
Notera: Som standard stöder SSL.com tidsstämplar från ECDSA-nycklar.

Om du stöter på det här felet: The timestamp certificate does not meet a minimum public key length requirement, bör du kontakta din programvaruleverantör för att tillåta tidsstämplar från ECDSA-nycklar.

Om det inte finns något sätt för din programvaruleverantör att tillåta att den normala slutpunkten används, kan du använda denna äldre slutpunkt http://ts.ssl.com/legacy för att få en tidsstämpel från en RSA Timestamping Unit.

Verifiera digital signatur

  1. Du kan verifiera att din digitala signatur är giltig genom att visa signaturinformation i Windows.
    Digital signatur är ok
  2. Du kan också använda Signtool i Windows för att verifiera den digitala signaturen.
    signtool.exe verifierar / pa 'C: \ Användare \ Aaron Russell \ Desktop \ exempel.exe' Fil: C: \ Användare \ Aaron Russell \ Desktop \ exempel.exe Index Algoritm Tidsstämpel ============ ============================== 0 sha256 RFC3161 Verifierad: C: \ Användare \ Aaron Russell \ Desktop \ exempel.exe
Avsluta mobilversionen