Підпис коду 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 — запитайте новий сертифікат підпису коду
- Якщо потрібно, завантажте JDK за цим посиланням:
http://java.sun.com/javase/downloads/index.jsp - Запитайте сертифікат підпису коду від 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) може звернутися до вас за додатковою інформацією.
- Після створення сертифіката підпису коду ви отримаєте листа з посиланням для завантаження файлу та відповідних проміжних сертифікатів.
- Створіть нове сховище ключів. Сховище ключів — це місце, в якому зберігаються сертифікати. У цьому прикладі створюється сховище ключів «codesignstore», в якому будуть міститися лише сертифікат підпису коду та відповідний закритий ключ.
- Інсталюйте сертифікат підпису коду у створене раніше сховище ключів. У наступному прикладі використовується файл сертифіката підпису коду «mycert.cer». Файл сертифіката повинен міститися в поточній робочій папці та мати формат PKCS#7.
keytool -import -trustcacerts -keystore codesignstore -storepass
-alias codesigncert -file mycert.cer - Підпишіть файл 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 - Перевірте підписаний файл JAR
jarsigner -verify -verbose -certs myapp.jar
- Розповсюдьте код
Підхід 2 — використайте наявний файл PKCS #12, який містить сертифікат підпису коду та закритий ключ
- Якщо потрібно, завантажте JDK за цим посиланням:
http://java.sun.com/javase/downloads/index.jsp - Переконайтеся, що файл PFX/P12 можна використовувати з jarsigner. Виконайте таку команду; псевдонім, необхідний на етапі 5, буде відображено біля початку вихідного лістингу:
keytool -list -storetype pkcs12 -keystore mycert.pfx -v
- Створіть файл JAR з файлів класів Java за допомогою утиліти jar:
jar cvf myapp.jar myapp.class
- Підпишіть файл 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" - Перевірте підписаний файл JAR
jarsigner -verify -verbose -certs myapp.jar
- Розповсюдьте код
Посилання