13 нояб. 2024 г.
Введение
Эта статья станет по умолчанию основной после внедрения новых минимальных требований к подписи кода 1 февраля 2017 года.
Требования
В этом руководстве предполагается, что вы уже:
Настройка подписи
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 потенциальные проблемы с конфигурацией:
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 в свой токен, чтобы обеспечить правильность цепочек подписей. Примечание: вам необходимо импортировать соответствующий промежуточный сертификат в соответствии с вашим типом сертификата.
Сканируйте конечные точки, чтобы найти все ваши сертификаты.
Войти / ЗарегистрироватьсяПроверьте установку сертификата на наличие проблем и уязвимостей SSL.