Keytool — це утиліта командного рядка, яка дозволяє керувати/зберігати криптографічні ключі та сертифікати.
Якщо у вашій системі встановлено Java, ви можете використовувати команду keytool, щоб імпортувати сертифікат ЦС, створювати список сертифікатів, створювати самопідписані сертифікати, зберігати парольні фрази та відкритий/приватний ключ, а також робити багато іншого.
Збентежений? Не хвилюйтеся; Я поясню це простіше, коли ви читатимете.
Зверніть увагу, що я використовую Linux для тестування команд і поясню вам трохи більше про це на прикладах.
Ви також можете використовувати команди Keytool у Windows і macOS.
Що таке команда Keytool?
Це утиліта для керування ключами та сертифікатами. Це дозволяє зберігати пари закритих/відкритих ключів, які зазвичай призначені для перевірки/автентифікації доступу до служб.
Враховуючи назву статті, можна припустити, що командою користуються переважно системні адміністратори та розробники.
Здебільшого так, але користувач може проявити креативність із командою keytool для зберігання парольних фраз і секретних ключів для автентифікації, шифрування та дешифрування. Отже, якщо вам цікаво, ви повинні спробувати це у своїй системі.
Якщо ви новачок у концепції криптографічних ключів, ви можете ознайомитися з нашою статтею про шифрування даних, перш ніж спробувати команди keytool.
Крім того, ознайомлення з прикладами команд OpenSSL також може дати вам деяке уявлення про те, чим вони відрізняються та що ви можете робити з будь-якою з них.
Створіть самопідписаний сертифікат
keytool -genkeypair -alias <alias> -keypass <keypass> -validity <validity> -storepass <storepass>
На відміну від сертифіката SSL, який ви купуєте, самопідписаний сертифікат використовується лише для розробки/тестування для використання безпечного з’єднання.
Ви можете створити його за допомогою згаданого вище синтаксису команди keytool. Наприклад, ось як це виглядає:
keytool -genkeypair -alias techukraine.net -keypass passforkeystore -validity 365 -storepass passforkeystore
Ви можете використовувати будь-яке ім’я для псевдоніма; Я використовую techukraine.net як текст-заповнювач. Ви можете налаштувати дійсність і вказати пароль для сховища ключів, замінивши «passforkeystore» у команді вище.
Зауважте, що для PKCS12 KeyStores підтримується лише один пароль. Однак це зручний тип сховища ключів, який не є специфічним для Java.
Якщо вам потрібні два різні паролі для сховища ключів і сертифіката, ви можете явно вказати команді keytool використовувати інший інтерфейс.
Ви можете прочитати про це в офіційній документації.
Після того, як ви продовжите створення, він запитає додаткові відомості для автентичності. Ось як це має виглядати:
What is your first and last name? [Unknown]: Ankush What is the name of your organizational unit? [Unknown]: techukraine.net What is the name of your organization? [Unknown]: techukraine.net What is the name of your City or Locality? [Unknown]: Bhubaneswar What is the name of your State or Province? [Unknown]: Odisha What is the two-letter country code for this unit? [Unknown]: 91 Is CN=Ankush, OU=techukraine.net, O=techukraine.net, L=Bhubaneswar, ST=Odisha, C=91 correct? [no]: yes
Створіть сховище ключів Java і пару ключів
keytool -genkeypair -keyalg RSA -keysize 2048 -keystore keystore.jks -alias geekflarejava -validity 3650
Створіть сховище ключів Java та імпортуйте сертифікат
Переконайтеся, що у вас є дійсний сертифікат або ви створили його раніше; Після цього ви можете імпортувати його та створити сховище ключів Java.
keytool -importcert -file test.crt -keystore truststore.jks -alias techukraine.net
Створіть пару ключів до сховища ключів за замовчуванням із темою
Ви можете швидко згенерувати пару ключів (скажімо, з назвою «ca») за допомогою такої команди:
keytool -alias ca -dname CN=CA -genkeypair
Створіть ланцюжок підписаних сертифікатів
Припустімо, ви створили пари ключів ca та ca1. Ви можете створити ланцюжок підписаних сертифікатів, де ca підпише ca1 за допомогою таких команд:
keytool -alias ca1 -certreq
keytool -alias ca -gencert -ext san=dns:ca1
keytool -alias ca1 -importcert
Ви можете завершити ланцюжок ще двома парами ключів ca1 і ca2, де ca1 буде підписувати ca2.
Імпорт сертифіката
Якщо ви хочете імпортувати сертифікат із доступного файлу, ви можете зробити ось що:
keystool -import -alias techukraine.net -file geekflareserver.cer
Створіть запит на підписання сертифіката (CSR) для існуючого сховища ключів
Оскільки ви вже створили сховище ключів, ви можете створити CSR.
keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file techukraine.net.csr
Список сертифікатів, що зберігаються в Java Keystore
Сховище ключів може мати кілька записів сертифікатів. Припускаючи, що ми перевіряємо список сертифікатів у базі даних «keystore.jks», ось що нам потрібно ввести:
keytool -v -list -keystore keystore.jks
Вихід для цього виглядатиме так:
keytool -v -list -keystore keystore.jks Enter keystore password: Keystore type: PKCS12 Keystore provider: SUN Your keystore contains 2 entries Alias name: geekflarecert Creation date: 16-Nov-2022 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Ankush, OU=Geek, O=techukraine.net, L=Bhubaneswar, ST=od, C=91 Issuer: CN=Ankush, OU=Geek, O=techukraine.net, L=Bhubaneswar, ST=od, C=91 Serial number: a0b9a99 Valid from: Wed Nov 16 09:42:37 IST 2022 until: Sat Nov 13 09:42:37 IST 2032 Certificate fingerprints: SHA1: 23:7C:65:A7:A6:84:18:F8:45:04:92:DF:D4:BB:0F:91:6D:A5:C5:BE SHA256: C0:25:ED:B8:CF:1A:E6:E1:C5:75:A8:10:8F:CD:BE:42:26:96:9C:9A:FA:74:65:07:71:06:9A:2C:F5:80:FE:7F Signature algorithm name: SHA256withRSA Subject Public Key Algorithm: 2048-bit RSA key Version: 3
Перевірте вміст одного сертифіката
Враховуючи, що у вас уже є згенерований сертифікат, ви можете перевірити його більше за допомогою наступного:
keytool -v -printcert -file server.crt
Переглядайте сертифікати в сховищі ключів Java
Ви можете перерахувати всі сертифікати з бази даних Keystore. Ось як команда виглядає:
keytool -v -list -keystore keystore.jks
Перегляд сховища ключів за допомогою псевдоніма та сховища ключів
Якщо ви хочете перевірити сховище ключів за його псевдонімом, який ви встановили під час його створення, введіть наступне:
keytool -v -list -keystore keystore.jks -alias geekflareserver
Список сертифікатів у KeyStore
Якщо ви хочете перевірити сертифікати, що зберігаються в сховищі ключів за замовчуванням, скористайтеся командою:
keytool -list -storepass passforkeystore
Вам потрібно замінити «passforkeystore» на встановлений пароль.
Переглянути інформацію про сертифікат
Якщо вам потрібно перевірити деталі для одного сертифіката, ви можете використовувати його псевдонім, не вказуючи базу даних keystone.
Ось як це виглядає:
keytool -list -v -alias techukraine.net -storepass passforkeystore
Переглянути сертифікат у форматі PEM
PEM є одним із найпоширеніших форматів для сертифікатів і криптографічних ключів. Якщо ви хочете перевірити сертифікат за допомогою PEM, введіть наступне:
keytool -v -printcert -file techukraine.net.crt -rfc
Змініть пароль сховища ключів Java
Якщо ви вже створили пароль для сховища ключів Java, ви можете змінити пароль за допомогою команди:
keytool -delete -alias techukraine.net -keystore keystore.jks
Видалити сертифікат із сховища ключів Java
Ви можете вказати сховище ключів Java і його псевдонім, щоб видалити його. Наприклад:
keytool -delete -alias techukraine.net -keystore keystore.jks
Дослідіть команду та отримайте допомогу
Команда має кілька аргументів і розширень, щоб виконувати багато завдань. Залежно від вашого випадку використання, вам може знадобитися або не потрібно використовувати всі з них.
Отже, якщо ви хочете глибше зануритися в параметри команд, ви завжди можете ввести:
keytool -help
У будь-якому випадку, якщо ви використовуєте термінал Linux, я б рекомендував прочитати сторінку man (manual) із цією командою:
man keytool
За допомогою команди man ви можете отримати всі необхідні відомості про команду keytool.
Отже, нехай це буде ваша суперсила, щоб дізнатися все, що ви можете про це!
Підведенню
Шлях до файлів та інші параметри налаштування можуть дещо відрізнятися від платформи, яку ви використовуєте. Ви також можете звернутися до документації Oracle щодо стандартизованих параметрів.
Keytool є чудовим інструментом для ряду завдань. Перевірте його та подивіться, що ви можете з ним зробити!
Ви також можете дослідити деякі команди Linux, щоб підтримувати оптимальну роботу систем.