Frequently Asked Questions

Other Languages: Dansk Deutsch Ελληνικά English Español Suomi Français Italiano Bokmål Nederlands Polski Português - Brasil Português - Portugal Русский Svenska Türkçe Chinese Taiwan Chinese

Підпис коду Java: Створення CSR

Print this Article
Last Updated: February 2, 2015 12:52 PM

Починаючи з січня 2014 р. усі застосунки Java, що запускаються у веб-браузерах, вимагають сертифікатів підпису коду. Після придбання сертифіката підпису коду ви повинні підписати ваш код Java.

Для упакування та підписування коду Java потрібні різні утиліти, зокрема keytool, jar та jarsigner. Починаючи з JDK 5.0 утиліта jarsigner може генерувати підписи, які містять мітку часу, що дає змогу засвідчувати, що файл JAR був підписаний у період дії сертифіката підпису коду.

Підхід 1 — запитайте новий сертифікат підпису коду

  1. Якщо потрібно, завантажте JDK за цим посиланням:
    http://java.sun.com/javase/downloads/index.jsp
  2. Запитайте сертифікат підпису коду від Starfield Technologies.
    • Створіть нове сховище ключів. Сховище ключів — це місце, в якому зберігаються сертифікати. У цьому прикладі створюється сховище ключів «codesignstore», в якому будуть міститися лише сертифікат підпису коду та відповідний закритий ключ.
      keytool -genkey -alias codesigncert -keypass -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass
    • Створіть запит на підписування сертифіката (CSR). Закритий ключ буде створено та збережено у сховищі ключів «codesignstore». У поточному робочому каталозі буде створено файл CSR «mycsr.pem».
      keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
    • Придбайте сертифікат підпису коду.
    • Клацніть кредит придбаного сертифікату підпису коду в розділі «Мій акаунт». Буде відкрито веб-застосунок Starfield «Керування акаунтами послуг сертифікатів». Щоб поле CSR відображалося, на формі запиту потрібно вибрати ручний метод створення CSR.
    • Надішліть CSR у складі запиту на підпис коду.
      • Відкрийте файл «mycsr.pem» в редакторі, скопіюйте весь його вміст (включно з рядками BEGIN NEW CERTIFICATE REQUEST і END NEW CERTIFICATE REQUEST) і вставте його у відповідний розділ форми запиту на підпис коду.
    • Надану вами інформацію про компанію буде перевірено. При потребі центр реєстрації (RA) може звернутися до вас за додатковою інформацією.
    • Після створення сертифіката підпису коду ви отримаєте листа з посиланням для завантаження файлу та відповідних проміжних сертифікатів.
  3. Інсталюйте сертифікат підпису коду у створене раніше сховище ключів. У наступному прикладі використовується файл сертифіката підпису коду «mycert.cer». Файл сертифіката повинен міститися в поточній робочій папці та мати формат PKCS#7.
    keytool -import -trustcacerts -keystore codesignstore -storepass -alias codesigncert -file mycert.cer
  4. Підпишіть файл JAR за допомогою jarsigner, вказавши сертифікат підпису коду та закритий ключ
    jarsigner -verbose -keystore codesignstore -storepass -keypass myapp.jar codesigncert
    • «codesignstore» - псевдонім сховища ключів, в якому містяться сертифікат підпису коду, закритий ключ і решта сертифікатів у ланцюжку.
    • Ім'я непідписаного вхідного файлу, «myapp.jar», буде замінено на підписану версію файлу. Якщо потрібно вказати різні імена вхідного й вихідного файлів, використовуйте перемикач командного рядка «-signedjar».
    • «codesigncert» — псевдонім закритого ключа у сховищі ключів.
    У наступному прикладі до поданого вище прикладу додано параметри міток часу.
    jarsigner -verbose -keystore codesignstore -storepass -keypass -tsa http://tsa.starfieldtech.com/ myapp.jar codesigncert
  5. Перевірте підписаний файл JAR
    jarsigner -verify -verbose -certs myapp.jar
  6. Розповсюдьте код

Підхід 2 — використайте наявний файл PKCS #12, який містить сертифікат підпису коду та закритий ключ

  1. Якщо потрібно, завантажте JDK за цим посиланням:
    http://java.sun.com/javase/downloads/index.jsp
  2. Переконайтеся, що файл PFX/P12 можна використовувати з jarsigner. Виконайте таку команду; псевдонім, необхідний на етапі 5, буде відображено біля початку вихідного лістингу:
    keytool -list -storetype pkcs12 -keystore mycert.pfx -v
  3. Створіть файл JAR з файлів класів Java за допомогою утиліти jar:
    jar cvf myapp.jar myapp.class
  4. Підпишіть файл JAR за допомогою jarsigner, вказавши сертифікат підпису коду та закритий ключ:
    jarsigner -storetype pkcs12 -keystore mycert.pfx myapp.jar "aliasname"
    • «mycert.pfx» — повний шлях до файлу PFX/P12, який містить сертифікат підпису коду та закритий ключ. Цей файл також має містити всі проміжні сертифікати.
    • «aliasname» відображається біля початку вихідного лістингу етапу 2. Якщо файл PFX/P12 був експортований з Windows, то aliasname, швидше за все, буде ідентифікатором GUID.
    • Коли буде запропоновано, введіть пароль, пов'язаний із закритим ключем у файлі PFX/P12. Також можна додати перемикач «-storepass», щоб указати пароль у командному рядку.
    • Ім'я непідписаного вхідного файлу, «myapp.jar», буде замінено на підписану версію файлу. Якщо потрібно вказати різні імена вхідного й вихідного файлів, використовуйте перемикач командного рядка «-signedjar».
    У наступному прикладі до поданого вище прикладу додано параметри міток часу:
    jarsigner -storetype pkcs12 -keystore mycert.pfx -tsa http://tsa.starfieldtech.com/ myapp.jar "aliasname"
  5. Перевірте підписаний файл JAR
    jarsigner -verify -verbose -certs myapp.jar
  6. Розповсюдьте код

Посилання