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

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

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

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

  1. Якщо потрібно, завантажте JDK за цим посиланням:
    http://java.sun.com/javase/downloads/index.jsp
  2. Запитайте сертифікат підпису коду від GoDaddy.
    • Створіть нове сховище ключів. Сховище ключів — це місце, в якому зберігаються сертифікати. У цьому прикладі створюється сховище ключів «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
    • Придбайте сертифікат підпису коду.
    • Клацніть кредит придбаного сертифікату підпису коду в розділі «Мій акаунт». Буде відкрито веб-застосунок GoDaddy «Керування акаунтами послуг сертифікатів». Щоб поле 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. Розповсюдьте код

Посилання


Чи була ця стаття корисною?
Дякуємо за ваш відгук. Щоб звернутися до представника служби підтримки, скористайтеся телефонним номером або чатом (див. вище).
Ми раді, що змогли допомогти! Що ще ми можемо для вас зробити?
Нам дуже прикро. Повідомте нам, що викликало замішання або чому рішення не усунуло вашу проблему.