Jsign on avoimen lähdekoodin, alustasta riippumaton Java-työkalu Microsoft Authenticode -koodin allekirjoittamiseen. Jsign on helppo integroida rakennusjärjestelmiin, kuten Maven, Gradle ja Ant, tai sitä voidaan käyttää suoraan komentoriviltä.
Tässä ohjeessa käsitellään käyttöä Jsign : n Linux-komentoriviltä OV / IV-koodin allekirjoittaminen ja EV-koodin allekirjoittaminen. Koska Jsign on Java-pohjainen, voit käyttää sitä myös Windows- ja MacOS-järjestelmissä.
Asenna Jsign
Ensin sinun on ladattava ja asennettava Jsign. Jsign-verkkosivusto sisältää linkit Debian- ja RPM-paketteihin helppoon asennukseen suosituimpiin Linux-järjestelmiin sekä a .jar
tiedosto.
OV / IV -koodien allekirjoittaminen
OV/IV-koodin allekirjoittamiseen voit käyttää Java-avainsäilöön tai PKCS#12 (PFX) -tiedostoon tallennettua varmennetta. Korvaa kaikissa alla olevissa koodiesimerkeissä ALL-CAPS-merkityt arvot todellisilla arvoillasi.
- Käytä ensin
keytool
komento saadaalias
arvo, jota käytetään allekirjoitettaessa:avaintyökalulista -v -avainvarasto PKCS12-FILE.p12 -tyyppityyppi PKCS12 -tallennustila PKCS12-SALASANA
- Tarkista laitteen tulos
keytool
komento riville, joka alkaaAlias name:
.Avaimenvaraston tyyppi: PKCS12 Avaimenvaraaja: SUN Avaimesi varastossa on 1 merkintä Alias-nimi: 1 Luontipäivä: 18. tammikuuta 2021 Merkinnän tyyppi: PrivateKeyEntry-sertifikaatin ketjun pituus: 4 ...
Yllä olevassa esimerkissä
Alias name
is1
. - Käytä seuraavanlaista komentoa tiedoston allekirjoittamiseen ja aikaleimaan:
jsign
komento asennettu koko järjestelmään:jsign --keystore KEYSTORE.p12 --alias ALIAS-NAME --tyyppityyppi PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
- Jsignerin kanssa
.jar
tiedosto:java -jar jsign-3.1.jar --keystore KEYSTORE.p12 --alias ALIAS-NAME --tyypityyppi PKCS12 --storepass PKCS12-SALASANA --tsaurl http://ts.ssl.com --tsmode RFC3161 TIEDOSTO MERKKI
- Jos komentosi onnistuu, sinun pitäisi nähdä seuraavanlainen lähtö:
Authenticode-allekirjoituksen lisääminen esimerkkiin.exe
Jos kohtaat tämän virheen:
The timestamp certificate does not meet a minimum public key length requirement
, ota yhteyttä ohjelmiston myyjään salliaksesi aikaleimat ECDSA-avaimista.Jos ohjelmistotoimittajasi ei voi sallia normaalin päätepisteen käyttöä, voit käyttää tätä vanhaa päätepistettä
http://ts.ssl.com/legacy
saadaksesi aikaleiman RSA-aikaleimayksiköstä.EV-koodin allekirjoittaminen
Voit käyttää Jsignia myös EV-koodin allekirjoitusvarmenteen kanssa. Tässä esimerkissä käytetään SSL.com: ta EV-koodin allekirjoitusvarmenne asennettu FIPS 140-2 -suojausavaimen USB-tunniste.
- Varmista ensin OpenSC on asennettu järjestelmääsi, jotta se voi kommunikoida tunnuksesi kanssa PKCS # 11 -sovellusliittymän kautta. Debian-pohjaisiin distroihin, kuten Ubuntu, voit asentaa OpenSC: n
apt
:sudo apt install opensc
- Luo sitten määritystiedosto. Tiedoston nimi on mielivaltainen, mutta käytämme alla olevia esimerkkikomentoja
eToken.cfg
. Huomaa, että polkuopensc-pkcs11.so
saattaa vaihdella OpenSC-asennuksessa, joten tarkista ennen määritystiedoston luomista.nimi = OpenSC-PKCS11 kuvaus = SunPKCS11 OpenSC-kirjaston kautta = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
- Käytä
keytool
komento saadaalias
arvo, jota käytetään allekirjoitettaessa:keytool -list -v -avainvarasto NONE -storetype PKCS11 -storepass TOKEN -PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
- Tarkista laitteen tulos
keytool
komento riville, joka alkaaAlias name:
. Jos tunnuksesi sisältää useita varmenteita, tarkista tulosteessa olevat voimassaolopäivät ja myöntäjä varmenteesi kanssa. Huomaa, että SSL: n YubiKeylle myönnettyjen EV-koodin allekirjoitustodistusten alias-nimi onCertificate for PIV Authentication
.Aliaksen nimi: Sertifikaatti PIV-todennusmerkinnän tyypille: PrivateKeyEntry Sertifikaattiketjun pituus: 1 Sertifikaatti [1]: Omistaja: 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 = Yksityinen organisaatio, CN = SSL Corp, SARJANUMERO = NV2, O = SSL Corp, L = Houston, ST = TX, C = USA Liikkeeseenlaskija: CN = SSL.com EV-koodin allekirjoittamisen välituote CA RSA R7299, O = SSL Corp, L = Houston, ST = Texas, C = US-sarjanumero: 93f57a3bac6570c781580f63172e17 Voimassa: pe 12. huhtikuuta 46:04:2020 EDT 17 asti: la 12. huhtikuuta 46:04:2021 EDT XNUMX
- Käytä seuraavanlaista komentoa tiedoston allekirjoittamiseen ja aikaleimaan:
jsign
komento asennettu koko järjestelmään:jsign --keystore eToken.cfg --alias "PIV-todennuksen varmenne" - tyyppityyppi PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 TIEDOSTO-MERKINTÄ
- Jsignerin kanssa
.jar
tiedosto:java -jar jsign-3.1.jar --keystore eToken.cfg --alias "Certificate for PIV Authentication" --tyyppityyppi PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE -ALLEKIRJOITTAA
- Jos komentosi onnistuu, sinun pitäisi nähdä seuraavanlainen lähtö:
Authenticode-allekirjoituksen lisääminen esimerkkiin.exe
Jos kohtaat tämän virheen:
The timestamp certificate does not meet a minimum public key length requirement
, ota yhteyttä ohjelmiston myyjään salliaksesi aikaleimat ECDSA-avaimista.Jos ohjelmistotoimittajasi ei voi sallia normaalin päätepisteen käyttöä, voit käyttää tätä vanhaa päätepistettä
http://ts.ssl.com/legacy
saadaksesi aikaleiman RSA-aikaleimayksiköstä.Tarkista digitaalinen allekirjoitus
- Voit tarkistaa digitaalisen allekirjoituksesi kelpoisuuden tarkastelemalla allekirjoituksen tietoja Windowsissa.
- Voit myös käyttää SignTool Windowsissa digitaalisen allekirjoituksen vahvistamiseksi.
signtool.exe tarkistaa / pa 'C: \ Users \ Aaron Russell \ Desktop \ example.exe' Tiedosto: C: \ Users \ Aaron Russell \ Desktop \ example.exe Hakemistoalgoritmin aikaleima =========== ============================= 0 sha256 RFC3161 Vahvistettu onnistuneesti: C: \ Users \ Aaron Russell \ Desktop \ example.exe