Основи java keytool робота з java keystore

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

Пропозиція від 8host.com

Основи java keytool робота з java keystore

Даний посібник описує використання команд keytool, дуже корисних при роботі з JKS. Також воно охоплює створення і редагування сховищ ключів Java для Java-додатків.

Створення та імпортування записів

Даний розділ присвячений командам Java Keytool, які створюють пари ключів і сертифікатів, а також імпортують сертифікати.

створення ключів

Використовуйте цей метод для підтримки HTTPS (HTTP по TLS). В даному розділі показано, як створити нову пару ключів в новому або вже існуючому сховищі ключів Java, які можуть бути використані для створення запиту на підпис сертифіката (CSR) або отримання SSL-сертифіката в центрі сертифікації.

Дана команда згенерує пару 2048-бітних RSA-ключів під зазначеним псевдонімом (в даному випадку це domain) в зазначеному файлі сховища (keystore.jks).

keytool -genkeypair \
-alias domain \
-keyalg RSA \
-keystore keystore.jks

Якщо ж заданого сховища ключів не існує, він буде створений після отримання запитуваної інформації (а саме пароля сховища ключів, рядки Distinguished Name (для закритого ключа) і пароля закритого ключа).

Створення CSR для існуючого закритого ключа

Щоб згенерувати запит на підпис сертифіката, який можна відправити в ЦС для отримання надійного SSL-сертифіката, дотримуйтесь цього розділу керівництва. Для цього знадобляться вже існуюче сховище ключів і псевдонім.

Дана команда створить CSR (domain.csr), підписаний закритим ключем з псевдонімом domain в сховище keystore.jks:

keytool -certreq \
-alias domain \
-file domain.csr \
-keystore keystore.jks

Введіть пароль сховища ключів, після чого запит буде створений.

Імпорт підписаного / Root / проміжного сертифіката

В даному розділі показано, як імпортувати сертифікати (наприклад, підписаний ЦС сертифікат) в сховище ключів. Він повинен відповідати закритому ключу з певним псевдонімом. Також дану команду можна використовувати для імпортування root або проміжного сертифіката, який може зажадати ЦС для завершення довірчої ланцюжка. Просто вкажіть унікальний псевдонім, (наприклад, root замість domain) і сертифікат, який необхідно імпортувати.

Наступна команда імпортує сертифікат (domain.crt) в сховище ключів (keystore.jks) під зазначеним псевдонімом (domain). Підписаний сертифікат при імпортуванні повинен відповідати закритому ключу з зазначеним псевдонімом:

keytool -importcert \
-trustcacerts -file domain.crt \
-alias domain \
-keystore keystore.jks

На даному етапі буде запропоновано ввести пароль сховища ключів, а потім підтвердити імпортування.

Примітка. можна також використовувати цю команду, щоб імпортувати сертифікати ЦС в Java truststore (сховище довірених сертифікатів), яке, як правило, знаходиться в $ JAVA_HOME / jre / lib / security / cacerts, (передбачається, що JRE або JDK встановлено в $ JAVA_HOME).

Створення самоподпісанного сертифіката в новому / існуючому сховищі

В даному розділі показано, як створити самоподпісанний сертифікат для програми Java. Насправді, для цього використовується та ж команда, що і для створення нової пари ключів, але з параметром days, що задає термін дії сертифіката.

Отже, дана команда створить пару 2048-бітних RSA-ключів, дійсних протягом 365 днів, з зазначеним псевдонімом (domain) в заданому файлі ключів (keystore.jks):

keytool -genkey \
-alias domain \
-keyalg RSA \
-validity 365 \
-keystore keystore.jks

Якщо заданого сховища ключів не існує, команда створить його, отримавши необхідні дані (це пароль сховища, Distinguished Name (дл закритого ключа) і пароль закритого ключа).

Перевірка контрольної суми сертифіката

Дана команда виводить список контрольних сум всіх сертифікатів сховища (keystore.jks) з відповідними псевдонімами.

keytool -list \
-keystore keystore.jks

При цьому буде запропоновано ввести відповідний пароль сховища. Крім того, можна обмежити висновок до певного псевдоніма за допомогою опції -alias domain (де domain - потрібний псевдонім).

Дана команда виведе детальну інформацію про записи, що знаходяться в сховищі keystore.jks, в тому числі довжину ланцюга сертифіката, контрольних сум сертифікатів в ланцюжку, імена (distinguished name), серійні номери, а також дату створення і термін дейтвія за псевдонімами:

keytool -list -v \
-keystore keystore.jks

На даному етапі потрібно ввести пароль сховища ключів. Знову ж таки, за допомогою опції -alias domain (де domain - це псевдонім) можна обмежити висновок до певного псевдоніма.

Дана команда виведе детальну інформацію про фото сертифікату (certificate.crt), в тому числі контрольну суму, distinguished name власника і термін його дії:

keytool -printcert \
-file domain.crt

При цьому потрібно ввести пароль сховища.

Експорт сертифікатів

Дана команда експортує бінарний DER-зашифрований сертифікат (domain.der) з псевдонімом (domain) в сховище (keystore.jks):

keytool -exportcert
-alias domain
-file domain.der
-keystore keystore.jks

Вкажіть пароль сховища ключів.

Редагування сховища ключів

Даний розділ охоплює редагування записів Java Keystore (наприклад, видалення і зміна псевдонімів).

Змінить пароль збереження

За допомогою цієї команди можна змінити пароль сховища (keystore.jks):

keytool -storepasswd \
-keystore keystore.jks

Вкажіть поточний пароль сховища ключів, а потім новий пароль. Задати новий пароль можна і за допомогою самої команди, внісши в неї опцію -new newpass, де newpass - новий пароль.

видалення псевдоніма

Дана команда видалить псевдонім domain зі сховища keystore.jks:

keytool -delete \
-alias domain \
-keystore keystore.jks

Вкажіть пароль сховища.

зміна псевдоніма

За допомогою даної команди можна змінити псевдонім (наприклад, domain на newdomain):

keytool -changealias \
-alias domain \
-destalias newdomain \
-keystore keystore.jks

Даний посібник описує більшість операцій, які виконуються при управлінні Java Keystores. Звичайно, охопити всі функції в одній статті неможливо. Але знаючи базові команди, можна самостійно поекспериментувати з керуванням сховищами.