Руководство по подписи кода Java

Это руководство поможет вам начать подписывать код Java с помощью О.В. / И.В. or EV сертификат подписи кода от SSL.com. В этих инструкциях предполагается, что на вашем компьютере установлен Java Development Kit (JDK) и что keytool и jarsigner команды включены в ваш PATH. В инструкциях по подписанию кода Yubikey предполагается, что ваш сертификат установлен в слоте 9a ЮбиКей ФИПС токен, поскольку они отправлены SSL.com.

С 1 июня 2023 г., сертификаты SSL.com для подписи кода с проверкой организации (OV) и индивидуальной проверкой (IV) были выпущены либо на USB-токенах Федерального стандарта обработки информации 140-2 (FIPS 140-2), либо через нашу облачную службу подписи кода eSigner. Это изменение соответствует с новыми требованиями форума центра сертификации/браузера (CA/B) к хранилищу ключей для повышения безопасности ключей подписи кода.

Если у вас еще нет сертификата подписи кода и вы не уверены, какой тип вам нужен, прочтите этот FAQ.

SSL.com's Подпись кода OV / IV сертификаты - это экономичный способ защитить ваш код от несанкционированного вмешательства и взлома, и они доступны всего за $ 64.50 в год.

ЗАКАЗАТЬ СЕЙЧАС

Подписание кода OV/IV (только для сертификатов OV/IV, выпущенных до 1 июня 2023 г.)

Конфигурация

Метод 1: генерировать CSR и PFX файл в браузере

Самый простой способ быстро начать работу с подписью Java-кода - создать CSR и файл PFX при получении сертификата с SSL.com и установке его в новом хранилище ключей Java.

Примечание: Также можно подписать .jar файлы непосредственно с неконвертированным файлом PFX, добавив -storetype pkcs12 флаг к jarsigner команда.
  1. Следуйте инструкциям, приведенным в Заказ и получение сертификатов подписи кода заказать ваш сертификат и скачать файл PFX с вашим сертификатом и личным ключом.
  2. Импортируйте PFX в новое хранилище ключей с тем же паролем, используя приведенную ниже команду. (Заменить MY-CERTIFICATE.p12 и MY-KEYSTORE.jks с фактическим именем вашего файла PFX и именем файла, который вы хотите дать вашему хранилищу ключей. Обратите внимание, что destalias произвольно, и вы можете использовать другое значение псевдонима, если хотите.)
    keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias codeigning
    Примечание: Значение для -srcalias для файла PFX, загруженного с SSL.com, обычно следует 1, но вы можете подтвердить это, выполнив команду keytool -list -v -storetype pkcs12 -keystore MY-PFX.P12 и проверка значения, указанного для Alias name.
  3. Вам будет предложено ввести пароль для хранилища ключей назначения, а затем пароль исходного хранилища ключей (пароль, который вы ввели при создании PFX). Вы также можете увидеть предупреждение, начинающееся с Warning: The JKS keystore uses a proprietary format, Вы можете смело игнорировать это сообщение.

Метод 2: Генерация пары ключей и CSR с Java

Если вы предпочитаете создать свою пару ключей и CSR с Java, следуйте инструкциям в этом разделе. Процесс тот же, который используется для создания CSR для SSL /TLS сертификат на Яве.

Создать Keystore и пару ключей
  1. Сначала мы создадим хранилище ключей и пару открытого / закрытого ключей. Java использует файлы с расширением .jks (Java KeyStore) для хранения сертификатов и криптографических ключей. Введите следующую команду, чтобы сгенерировать хранилище ключей и 3072-битную пару ключей RSA. (Заменить MY-KEYSTORE.jks с именем, которое вы хотели бы иметь файл.)
    keytool -genkeypair -alias codeigning -keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
  2. Вам будет представлен ряд подсказок. Сначала создайте и подтвердите пароль для хранилища ключей, затем введите и проверьте запрашиваемую информацию. (Замените значения, указанные в заглавных буквах, своей информацией.)
    Введите пароль хранилища ключей: Введите новый пароль еще раз: Ваше имя и фамилия? [Неизвестно]: ИМЯ ФАМИЛИЯ Как называется ваша организация? [Неизвестно]: КОМПАНИЯ Как называется ваш город или местность? [Неизвестно]: ГОРОД Как называется ваш штат или провинция? [Неизвестно]: STATE Какой двухбуквенный код страны у этого аппарата? [Неизвестно]: US Верно ли CN=FIRSTNAME LASTNAME, OU=DEPARTMENT, O=COMPANY, L=CITY, ST=STATE, C=US? [нет да
  3. Файл хранилища ключей создан, и вы готовы создать CSR.
Порождать CSR
  1. Введите следующую команду, чтобы сгенерировать CSR из хранилища ключей мы только что создали. (Заменить MY-KEYSTORE.jks со значением, которое вы использовали при создании хранилища ключей и MY-CSR.csr с именем, которое вы хотите использовать для CSR.)
    keytool -certreq -alias codeigning -file MY-CSR.csr -keystore МОЙ-KEYSTORE.jks
  2. Введите пароль, который вы создали при создании хранилища ключей.
    Введите пароль хранилища ключей:
  3. Ассоциация CSR был создан. Если вы готовы заказать сертификат на SSL.com, откройте файл в текстовом редакторе, чтобы скопировать и вставить в CSR поле при заказе. Содержимое файла будет выглядеть примерно так, как показано ниже:
    -----BEGIN NEW CERTIFICATE REQUEST-----
    MIIC5TCCAc0CAQAwcDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVNUQVRFMQ0wCwYD
    VQQHEwRDSVRZMRAwDgYDVQQKEwdDT01QQU5ZMRMwEQYDVQQLEwpERVBBUlRNRU5U
    MRswGQYDVQQDExJGSVJTVE5BTUUgTEFTVE5BTUUwggEiMA0GCSqGSIb3DQEBAQUA
    A4IBDwAwggEKAoIBAQCrRyk8VLs1THls+vfz0YtMJ3qYYl4c5c499d1YSbfQHa6L
    kIYhKTxvgdtbD+ePDigKB40CpeuMp5Yu8R6g2YIVBpGMrejAZYAmrzs6tfjpelh0
    ocSDwYr7H8qQ9jq6MfZTu6J7EjS5RMODB6MVq1usKg3H866xbi6lqAtcktEF+zlM
    4FW9Tm3H/DW2G7EnTjlMPzgaXNIU7lLar7YAWPJgv83NV8lQNCDW4lFlZLWBU95r
    YkJ4gfWUFUyPc+AiGbsyDdrVjPvF5yaebnFDrwheFaWeTTigSfLY688G7bpA8VvE
    lKioCl8nlJlc9HOBNKKdhs4qEtF0BwSE8tOgbkWPAgMBAAGgMDAuBgkqhkiG9w0B
    CQ4xITAfMB0GA1UdDgQWBBTmVpJp824krUaJKrQNhsSbVjJA1jANBgkqhkiG9w0B
    AQsFAAOCAQEALlux89RkXyHN4PQqQHbShSeTTWLURII+F+OSK9N1RS5l8V7AMcRM
    wvOkPP7JBRCKiaFGTW+5vcLQNnWRqQZMe0I4E0jzhL2gGsdChPIJy9Jwgn3Rzxmw
    8V0lBY1SHQ9LKgSK0jIer3PQhXHDJlE2g2Dx8nJ4WJk7l2OTF9Kkly9hg8MOQdeg
    VIcs3HLsVI9Cwd6UHRT6ruKL3+bRgEcb6qj+qcrKHkzN7KXbOEznd10nAm87wENS
    mTb012ZFMlpUDvPNAHQgoGJ6slA+pIoH1fvrkosjql7R/H7Q+onm37Qa6d9L2ZqM
    MhgNpNWVwI0UBU4Xy4p9oUCJnvHhQ7U+3w==
    -----END NEW CERTIFICATE REQUEST-----
Заказ и получение сертификата
  1. Следуйте инструкциям, приведенным в Заказ и получение сертификатов подписи кода через шаг 24. Вместо того, чтобы сразу нажать на Создать сертификат кнопку, установите флажок У меня есть своя CSR.
    У меня есть своя CSR
  2. Вставьте свой CSR в поле формы и нажмите Создать сертификат .
    Вставить CSR и создать сертификат
  3. Нажмите Скачать и сохраните .crt файл в том же месте, где вы создали хранилище ключей.
    Скачать
Импортировать сертификат в хранилище ключей
  1. Используйте следующую команду для импорта сертификата в файл хранилища ключей Java. (Замените MY-CERTIFICATE.crt и MY-KEYSTORE.jks фактическими именами файлов.)
    keytool -importcert -file MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias codeigning
  2. Введите пароль хранилища ключей при появлении запроса.
    Введите пароль хранилища ключей:  
  3. Ваш сертификат установлен в хранилище ключей, и вы готовы начать подписывать файлы.
    Ответ сертификата был установлен в хранилище ключей

Подписывать файлы с Jarsigner

  1. Используйте следующую команду, чтобы добавить цифровую подпись с меткой времени в .jar файл. (Заменить /PATH/TO/MY-KEYSTORE.jks и MY-JAR.jar с фактическими именами файлов, которые вы используете. Если вы использовали другой псевдоним при настройке хранилища ключей, замените его на codesigning в команде.)
    jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks Кодовое подписание MY-JAR.jar
    Примечание: также можно подписать .jar файлы непосредственно с неконвертированным файлом PFX, добавив -storetype pkcs12 флаг к jarsigner команда.

    Примечание: По умолчанию SSL.com поддерживает метки времени из ключей ECDSA.

    Если вы столкнулись с этой ошибкой: The timestamp certificate does not meet a minimum public key length requirement, вам следует обратиться к поставщику программного обеспечения, чтобы разрешить временные метки из ключей ECDSA.

    Если ваш поставщик программного обеспечения не может разрешить использование обычной конечной точки, вы можете использовать эту устаревшую конечную точку. http://ts.ssl.com/legacy чтобы получить временную метку из модуля временных меток RSA.
  2. Введите пароль хранилища ключей в командной строке.
    Введите кодовую фразу для хранилища ключей: 
  3. Файл теперь подписан. Вы можете проверить подпись с помощью следующей команды:
    jarsigner -verify -verbose MY-JAR.jar
  4. Если ваш файл был успешно подписан, вывод команды должен содержать следующую строку:
    s = подпись проверена
    

 

Подписание кода IV, OV и EV с помощью YubiKey

SSL.com's Подпись кода EV сертификаты предлагают Windows 10 подпись кода в режиме ядра и мгновенное повышение репутации SmartScreen, и все это по цене $ 240.00 в год, Они доставляются в безопасности ЮбиКей ФИПС USB-токены с двухфакторной аутентификацией.

ЗАКАЗАТЬ СЕЙЧАС

Конфигурация

Установите драйвер PKCS # 11 и создайте файл eToken.cfg

Windows
  1. Установите OpenSC, следуя инструкциям в OpenSC Быстрый запуск Windows.
  2. Найдите драйвер OpenSC PKCS # 11. Местоположение установки по умолчанию C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll.
  3. Создайте файл конфигурации и сохраните его в удобном месте (например, в своем домашнем каталоге). Имя файла произвольно, но в этом руководстве мы будем использовать yubikey-pkcs11-java.cfg, Файл должен содержать следующую информацию:
    name = OpenSC-PKCS11 description = SunPKCS11 через библиотеку OpenSC = C: \ Program Files \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
MacOS
  1. Установите OpenSC, Если вы используете Homebrew в качестве менеджера пакетов вы можете установить OpenSC с помощью следующей команды:
    варить установить opensc
  2. Найдите драйвер OpenSC PKCS # 11. Если вы установили с помощью Homebrew, файл должен быть доступен по адресу /usr/local/lib/opensc-pkcs11.so.
  3. Создайте файл конфигурации и сохраните его в удобном месте (например, в своем домашнем каталоге). Имя файла произвольно, но в этом руководстве мы будем использовать yubikey-pkcs11-java.cfg, Файл должен содержать следующую информацию:
    name = OpenSC-PKCS11 description = SunPKCS11 через библиотеку OpenSC = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0

Подписывать файлы с Jarsigner

  1. Используйте следующую команду, чтобы добавить цифровую подпись с меткой времени в .jar файл. (Заменить MY-JAR.jar с реальным именем файла, которое вы используете.)
    jarsigner -tsa http://ts.ssl.com -providerClass sun.security.pkcs11.SunPKCS11 -providerArg yubikey-pkcs11-java.cfg -keystore NONE -storetype PKCS11 MY-JAR.jar "Сертификат для аутентификации PIV"
  2. Введите свой PIN-код YubiKey в командной строке пароля.
    Введите кодовую фразу для хранилища ключей: 
  3. Файл теперь подписан. Вы можете проверить подпись с помощью следующей команды:
    jarsigner -verify -verbose MY-JAR.jar
  4. Если ваш файл был успешно подписан, вывод команды должен содержать следующую строку:
    s = подпись проверена
    
Спасибо, что выбрали SSL.com! Если у вас возникнут вопросы, свяжитесь с нами по электронной почте по адресу Support@SSL.com, вызов 1-877-SSL-SECURE, или просто нажмите ссылку чата в правом нижнем углу этой страницы. Вы также можете найти ответы на многие распространенные вопросы поддержки в нашем база знаний.

 

Twitter
что его цель
LinkedIn
Reddit.
Эл. адрес

Будьте в курсе и будьте в безопасности

SSL.com является мировым лидером в области кибербезопасности, PKI и цифровые сертификаты. Подпишитесь, чтобы получать последние новости отрасли, советы и анонсы продуктов от SSL.com.

Мы будем рады вашим отзывам

Пройдите наш опрос и поделитесь с нами своими мыслями о своей недавней покупке.