Подписване на код на Microsoft Authenticode в Linux с Jsign

Jsign е инструмент с Java с отворен код, независим от платформата за подписване на код на Microsoft Authenticode. Jsign е лесен за интегриране със системи за изграждане като Maven, Gradle и Ant или може да се използва директно от командния ред.

В това ръководство ще разгледаме използването Jsign от командния ред на Linux за Подписване на OV / IV код намлява Подписване на EV код. Тъй като Jsign е базиран на Java, можете да го използвате и на Windows и MacOS системи.

Инсталирайте Jsign

Първо ще трябва да изтеглите и инсталирате Jsign. The Уебсайт Jsign включва връзки към пакети Debian и RPM за лесна инсталация на най-популярните Linux системи, както и .jar файл.

OV / IV подписване на код

Този раздел се отнася само за сертификати за подписване на код за индивидуално валидиране (IV) и организационно валидиране (OV), които са поръчани преди 1 юни 2023 г. От 1 юни 2023 г., сертификатите за подписване на код IV и OV на SSL.com започнаха да се издават или на USB токени по Федерален стандарт за обработка на информация 140-2 (FIPS 140-2), или чрез нашата услуга за подписване на код в облака eSigner. 

За подписване на OV/IV код можете да използвате сертификат, съхранен в хранилище за ключове на Java или PKCS#12 (PFX) файл. Във всички примери на кодове по-долу заменете стойностите, показани с ГЛАВНИ БЪЛГАРСКИ, с вашите действителни стойности.

  1. Първо използвайте keytool команда, за да получите alias стойност, която да се използва при подписване:
    keytool -list -v -keystore PKCS12 -FILE.p12 -type тип PKCS12 -storepass PKCS12 -PASSWORD
  2. Проверете изхода на вашия keytool команда за ред, започващ с Alias name:.
    Тип хранилище на ключове: PKCS12 Доставчик на хранилище на ключове: SUN Вашето хранилище на ключове съдържа 1 запис Име на псевдоним: 1 Дата на създаване: 18 януари 2021 г. Тип запис: PrivateKeyEntry Дължина на веригата на сертификата: 4 ...

    В горния пример, Alias name is 1.

  3. Използвайте команда като следната, за да подпишете и маркирате файл:
    • jsign команда, инсталирана за цялата система:
      jsign --keystore KEYSTORE.p12 - псевдоним ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
    • С Jsigner .jar файл:
      java -jar jsign-3.1.jar --keystore KEYSTORE.p12 - псевдоними ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO- ЗНАК
  4. Ако вашата команда е успешна, трябва да видите изход по следния начин:
    Добавяне на подпис на Authenticode към example.exe
Забележка: По подразбиране SSL.com поддържа времеви отпечатъци от ECDSA ключове.

Ако срещнете тази грешка: The timestamp certificate does not meet a minimum public key length requirement, трябва да се свържете с вашия доставчик на софтуер, за да разрешите времеви отпечатъци от ECDSA ключове.

Ако няма начин вашият доставчик на софтуер да позволи използването на нормалната крайна точка, можете да използвате тази наследена крайна точка http://ts.ssl.com/legacy за да получите времево клеймо от RSA Timestamping Unit.

Подписване на EV код

Можете също да използвате Jsign със сертификат за подписване на EV код. Примерът тук използва SSL.com Сертификат за подписване на EV код инсталиран на a USB токен за ключ за сигурност, валидиран от FIPS 140-2.

  1. Първо, уверете се, че OpenSC е инсталиран на вашата система, за да може да комуникира с вашия маркер чрез PKCS # 11 API. На базирани на Debian дистрибуции като Ubuntu можете да инсталирате OpenSC с apt:
    sudo apt инсталирате opensc
  2. След това създайте конфигурационен файл. Името на файла е произволно, но за примерните команди по-долу ще използваме eToken.cfg. Имайте предвид, че пътят до opensc-pkcs11.so може да варира във вашата инсталация на OpenSC, така че проверете преди да създадете конфигурационния файл.
    име = OpenSC-PKCS11 описание = SunPKCS11 чрез библиотека OpenSC = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
  3. Използвайте keytool команда, за да получите alias стойност, която да се използва при подписване:
    keytool -list -v -keystore NONE -storetype PKCS11 -storepass TOKEN -PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
  4. Проверете изхода на вашия keytool команда за ред, започващ с Alias name:. Ако вашият маркер съдържа множество сертификати, проверете датите на валидност и издателя в изхода спрямо вашия сертификат. Имайте предвид, че сертификатите за подписване на EV код, издадени на YubiKey от SSL.com, трябва да имат псевдоним на Certificate for PIV Authentication.
    Име на псевдоним: Сертификат за PIV удостоверяване Тип на въвеждане: PrivateKeyEntry Дължина на веригата на сертификата: 1 Сертификат [1]: Собственик: OID.1.3.6.1.4.1.311.60.2.1.3 = САЩ, OID.1.3.6.1.4.1.311.60.2.1.2 .2.5.4.15 = Невада, OID.20081614243 = Частна организация, CN = SSL Corp, SERIALNUMBER = NV2, O = SSL Corp, L = Хюстън, ST = TX, C = САЩ Издател: CN = SSL.com Междинно подписване на EV код CA RSA R7299, O = SSL Corp, L = Хюстън, ST = Тексас, C = САЩ Сериен номер: 93f57a3bac6570c781580f63172e17 Важи от: петък 12 април 46:04:2020 EDT 17 до: сряда 12 април 46:04:2021 EDT XNUMX
  5. Използвайте команда като следната, за да подпишете и маркирате файл:
    • jsign команда, инсталирана за цялата система:
      jsign --keystore eToken.cfg - псевдоним "Сертификат за PIV удостоверяване" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
    • С Jsigner .jar файл:
      java -jar jsign-3.1.jar --keystore eToken.cfg --alias "Сертификат за PIV удостоверяване" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE -ДА ПОДПИШЕ
  6. Ако вашата команда е успешна, трябва да видите изход по следния начин:
    Добавяне на подпис на Authenticode към example.exe
Забележка: По подразбиране SSL.com поддържа времеви отпечатъци от ECDSA ключове.

Ако срещнете тази грешка: The timestamp certificate does not meet a minimum public key length requirement, трябва да се свържете с вашия доставчик на софтуер, за да разрешите времеви отпечатъци от ECDSA ключове.

Ако няма начин вашият доставчик на софтуер да позволи използването на нормалната крайна точка, можете да използвате тази наследена крайна точка http://ts.ssl.com/legacy за да получите времево клеймо от RSA Timestamping Unit.

Проверете цифровия подпис

  1. Можете да проверите дали вашият цифров подпис е валиден, като прегледате подробностите за подписа в Windows.
    Цифровият подпис е добре
  2. Vous използване pouvez aussi SignTool в Windows, за да проверите цифровия подпис.
    signtool.exe verify / pa 'C: \ Users \ Aaron Russell \ Desktop \ example.exe' Файл: C: \ Users \ Aaron Russell \ Desktop \ example.exe Алгоритъм на индекса Времево клеймо =========== ============================= 0 sha256 RFC3161 Успешно проверено: C: \ Users \ Aaron Russell \ Desktop \ example.exe

Абонирайте се за бюлетина на SSL.com

Не пропускайте нови статии и актуализации от SSL.com

Бъдете информирани и защитени

SSL.com е глобален лидер в киберсигурността, PKI и цифрови сертификати. Регистрирайте се, за да получавате най-новите новини от индустрията, съвети и съобщения за продукти от SSL.com.

Ще се радваме на вашите отзиви

Попълнете нашата анкета и ни кажете какво мислите за скорошната си покупка.