Подпись кода для Java

13 нояб. 2024 г.

Подпись кода для Java

Введение

Эта статья станет по умолчанию основной после внедрения новых минимальных требований к подписи кода 1 февраля 2017 года.

Требования

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

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

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

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

name=eToken
library=c:\WINDOWS\system32\eTPKCS11.dll
slot=3 

Примечание. Номер слота по умолчанию, если он не указан, равен 0. SafeNet eToken 5100 автоматически назначит слот 0, поэтому строка слота в файле .cfg не потребуется. Однако это может потребоваться изменить в зависимости от количества установленных eTokens / считывателей смарт-карт. Номер слота по умолчанию для SafeNet Ikey 4000 - слот 3. Линия слота потребуется при использовании SafeNet iKey 4000.

2. Сохраните этот файл в папке JDK bin, по умолчанию он:

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

3. Откройте командную строку: Пуск > Выполнить > cmd (Start > Run > 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

Введите пароль хранилища ключей: “Ваш пароль токена”

 

Примечание об ошибке: Если вы получите следующую ошибку: “java.безопасность.Исключение KeyStoreException: PKCS11 не найден” на данный момент. Есть 2 потенциальные проблемы с конфигурацией:

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

6. Вывод состоит из псевдонима ключа, типа ключа и «отпечатка пальца» сертификата. Нам понадобится псевдоним сертификата подписи кода, чтобы фактически подписать файл.

le-d0e453de-66db-414a-8fa8-0a07cfad66b5, PrivateKeyEntry, Certificate fingerprint (SHA1): 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

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

8. Найдите установленный сертификат подписи кода GlobalSign и дважды щелкните его. При этом будут выведены сведения о сертификате. Выберите вкладку "Сведения", прокрутите вниз, и там появится отпечаток большого пальца.

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

le-d0e453de-66db-414a-8fa8-0a07cfad66b5, PrivateKeyEntry, Certificate fingerprint (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 Файлы (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 в свой токен, чтобы обеспечить правильность цепочек подписей. Примечание: вам необходимо импортировать соответствующий промежуточный сертификат в соответствии с вашим типом сертификата.

Related Articles

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

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

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

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

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

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

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

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

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