Основи 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

Даний посібник описує використання команд 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. Звичайно, охопити всі функції в одній статті неможливо. Але знаючи базові команди, можна самостійно поекспериментувати з керуванням сховищами.