Подписание EV-кода в Java (на основе токенов)

21 апр. 2025 г.

Подписание EV-кода в Java (на основе токенов)

Пререквизиты

В этом руководстве предполагается, что вы уже сделали это:

  •  Получение и установка сертификата на ваш токен безопасности

  •  Установите Java JDK.

  •  Права администратора могут потребоваться в зависимости от разрешений, установленных для папки Java JDK bin.

Настройка подписи

  1. Чтобы разрешить JDK доступ к маркеру безопасности, сначала нужно создать файл конфигурации. Откройте любой текстовый редактор и создайте файл с именем eToken.cfg. Файл должен содержать 2, возможно 3, строки:

    name=eToken
    library=c:\WINDOWS\system32\eTPKCS11.dll
    слот=3


    Примечание: По умолчанию GlobalSign предоставляет токен eToken 5110. Номер слота по умолчанию, если он не указан, равен 0. SafeNet eToken 5110 будет автоматически назначен на слот 0, поэтому строка slot в файле .cfg не нужна. Однако ее можно изменить в зависимости от количества установленных eTokens / считывателей SmartCard. По умолчанию номер слота для SafeNet Ikey 4000 - это слот 3. Строка слота потребуется при использовании SafeNet iKey 4000.
     
  2. Сохраните этот файл в папке JDK bin, по умолчанию это:

    C:\Program Files (x86)\Java\jdk1.7.0_67\bin

  3. Откройте командную строку: Пуск>  Выполнить>  cmd

  4. Перейдите в папку Java JDK Bin:

    cd C:\Program Files (x86)\Java\jdk1.7.0_67\bin

  5. Чтобы использовать токен для подписи, вам нужно будет найти псевдоним вашего закрытого ключа. Это позволит вам ссылаться на нужный сертификат при подписании. Выполните следующую команду из папки bin:

    keytool -list -keystore NONE -storetype PKCS11 -providerclass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg

    Введите пароль keystore: "Your Token Password".

    Примечание об ошибке: Если вы получаете следующую ошибку: "java.security.KeyStoreException: PKCS11 not found" на этом этапе. В конфигурации могут возникнуть 2 потенциальные проблемы:

    • Указанный номер слота не является правильным. Чтобы найти правильный слот, установите номер слота на ноль в файле eToken.cfg (slot=0). Попробуйте выполнить команду list еще раз, увеличивая номер слота на 1 с каждой итерацией ошибки. В итоге вы должны получить приглашение Enter KeyStore Password, которое примет вашу парольную фразу SafeNet Token. * См: Настройка подписи Шаг 1.
    • Драйверы SafeNet установлены неправильно. Убедитесь, что установлены правильные драйверы.
       
  6. Вывод состоит из псевдонима ключа, типа ключа и отпечатка сертификата. Нам понадобится псевдоним сертификата EV Code Signing, чтобы подписать файл.

    le-d0e453de-66db-414a-8fa8-0a07cfad66b5, PrivateKeyEntry, Отпечаток сертификата (SHA1): 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

  7. Если на вашем токене более одного сертификата, вам может понадобиться определить, какой сертификат мы будем использовать. Откройте Safenet Authentication Client, нажмите на значок шестеренки в верхней части:

  8. Найдите установленный сертификат GlobalSign EV Code Signing Certificate и дважды щелкните его. Откроются сведения о сертификате. Выберите вкладку "Сведения", прокрутите страницу в самый низ, и там появится отпечаток пальца:

  9. Сопоставьте отпечаток сертификата с соответствующим псевдонимом в выходных данных. В данном случае это будет первая запись:

    le-d0e453de-66db-414a-8fa8-0a07cfad66b5, PrivateKeyEntry, Отпечаток сертификата (SHA1): 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

  10. Скопируйте псевдоним (например, le-d0e453de-66db-414a-8fa8-0a07cfad66b5) для использования в нашей следующей команде.


Подписание файла .Jar

  1. Теперь, когда мы успешно получили доступ к токену и псевдоним сертификатов, мы можем подписать файл .jar. Вам нужно поместить подписываемый .jar-файл в каталог bin.

  2. В командной строке перейдите в каталог Java SDK bin (например, C:\Program Files (x86)\Java\jdk1.7.0_67\bin).
    Для подписи используется следующая команда:

    jarsigner -keystore NONE -storetype PKCS11 -tsa http://timestamp.globalsign.com/tsa/r6advanced1 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg test.jar "le-d0e453de-66db-414a-8fa8-0a07cfad66b5"

    Примечание: Временная метка вашего кода очень важна и настоятельно рекомендуется для каждой части кода, которую вы подписываете. Эта временная метка позволит подписанному вами файлу оставаться действительным долгое время после истечения срока действия самого сертификата.

Распространенные ошибки

  1. Предупреждение: Цепочка сертификатов подписывающего лица не подтверждена.

 

Система оповещения GlobalSign

Просмотр последних системных оповещений.

Просмотр оповещений

Инструмент инвентаризации сертификатов (CIT)

Сканируйте конечные точки, чтобы найти все ваши сертификаты.

Войти / Зарегистрироваться

Тест конфигурации SSL

Проверьте установку сертификата на наличие проблем и уязвимостей SSL.

Связаться с поддержкой