17 прикладів команд Keytool, які слід знати системному адміністратору та розробнику

Keytool — це утиліта командного рядка, яка дозволяє керувати/зберігати криптографічні ключі та сертифікати.

Якщо у вашій системі встановлено Java, ви можете використовувати команду keytool, щоб імпортувати сертифікат ЦС, створювати список сертифікатів, створювати самопідписані сертифікати, зберігати парольні фрази та відкритий/приватний ключ, а також робити багато іншого.

Збентежений? Не хвилюйтеся; Я поясню це простіше, коли ви читатимете.

Зверніть увагу, що я використовую Linux для тестування команд і поясню вам трохи більше про це на прикладах.

Ви також можете використовувати команди Keytool у Windows і macOS.

Що таке команда Keytool?

Це утиліта для керування ключами та сертифікатами. Це дозволяє зберігати пари закритих/відкритих ключів, які зазвичай призначені для перевірки/автентифікації доступу до служб.

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

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

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

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

Створіть самопідписаний сертифікат

keytool -genkeypair -alias <alias> -keypass <keypass> -validity <validity> -storepass <storepass>

На відміну від сертифіката SSL, який ви купуєте, самопідписаний сертифікат використовується лише для розробки/тестування для використання безпечного з’єднання.

  Чи можете ви бачити текстові повідомлення на AT&T?

Ви можете створити його за допомогою згаданого вище синтаксису команди 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.

  13 способів покращити конфіденційність MIUI – заборонити Xiaomi збирати дані

Імпорт сертифіката

Якщо ви хочете імпортувати сертифікат із доступного файлу, ви можете зробити ось що:

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» на встановлений пароль.

  Як перевірити дозволи на доповнення Firefox

Переглянути інформацію про сертифікат

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