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

Keytool е помощна програма от командния ред, която ви позволява да управлявате/съхранявате криптографски ключове и сертификати.

Ако вашата система има инсталирана Java, можете да използвате командата keytool, за да импортирате CA сертификат, да изброявате сертификати, да създавате самоподписани сертификати, да съхранявате пароли и публични/частни ключове и да правите много други неща.

объркани? Не се притеснявайте; Ще го обясня с по-прости думи, докато четете.

Имайте предвид, че използвам Linux, за да тествам командите и ви обяснявам малко повече за него с примери.

Можете също да използвате команди на Keytool в Windows и macOS.

Какво представлява командата Keytool?

Това е помощна програма за управление на ключове и сертификати. Тя ви позволява да съхранявате двойки частни/публични ключове, които обикновено са за проверка/удостоверяване на достъпа до услуги.

Като се има предвид заглавието на тази статия, може да се предположи, че командата се използва главно от системни администратори и разработчици.

В по-голямата си част, да, но потребителят може да бъде креативен с командата keytool, за да съхранява пароли и секретни ключове за целите на удостоверяване, криптиране и дешифриране. Така че, ако сте любопитни, трябва да го изпробвате на вашата система.

Ако не сте запознати с концепцията за криптографски ключове, може да искате да разгледате нашата статия за криптиране на данни, преди да опитате командите на keytool.

  Как да настроите DNS кеширане с помощта на dnsmasq на Ubuntu

Освен това, разглеждането на примерите за команда OpenSSL също може да ви даде известна представа как е различна и какво можете да правите с която и да е от тях.

Създайте самоподписан сертификат

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

За разлика от закупения от вас SSL сертификат, самоподписаният сертификат се използва само за целите на разработка/тестване, за да се използва защитена връзка.

Можете да генерирате такъв, като използвате синтаксиса на командата keytool, споменат по-горе. Например, ето как изглежда:

keytool -genkeypair -alias pctechbg.net -keypass passforkeystore -validity 365 -storepass passforkeystore

Можете да използвате всяко име за псевдоним; Използвам pctechbg.net като заместващ текст. Можете да персонализирате валидността и да посочите парола за Keystore, като замените „passforkeystore“ в командата по-горе.

Имайте предвид, че само една парола се поддържа за PKCS12 KeyStores. Това обаче е удобен тип Keystore, който не е специфичен за Java.

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

Можете да прочетете повече за него в официалната му документация.

След като продължите със създаването, той ще поиска допълнителни подробности за автентичност. Ето как трябва да изглежда:

What is your first and last name?
  [Unknown]:  Ankush
What is the name of your organizational unit?
  [Unknown]:  pctechbg.net
What is the name of your organization?
  [Unknown]:  pctechbg.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=pctechbg.net, O=pctechbg.net, L=Bhubaneswar, ST=Odisha, C=91 correct?
  [no]:  yes

Създайте Java Keystore и Key Pair

keytool -genkeypair -keyalg RSA -keysize 2048 -keystore keystore.jks -alias geekflarejava -validity 3650

Генерирайте Java Keystore и импортирайте сертификат

Уверете се, че имате валиден сертификат или сте генерирали такъв по-рано; след като сте готови, можете да го импортирате и да генерирате Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias pctechbg.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.

  Как да създадете псевдоним за вашия имейл адрес в iCloud

Импортиране на сертификат

Ако искате да импортирате сертификат от наличен файл, ето какво можете да направите:

keystool -import -alias pctechbg.net -file geekflareserver.cer

Създайте заявка за подписване на сертификат (CSR) за съществуващото хранилище за ключове

Като се има предвид, че вече сте създали хранилище за ключове, можете да генерирате CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file pctechbg.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=pctechbg.net, L=Bhubaneswar, ST=od, C=91
Issuer: CN=Ankush, OU=Geek, O=pctechbg.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

Можете да изброите всички сертификати от база данни на Keystore. Ето как изглежда командата:

keytool -v -list -keystore keystore.jks

Преглед на Keystore с помощта на псевдоним и Keystore

Ако искате да проверите хранилище за ключове, като използвате неговото псевдоним, което сте задали при създаването му, въведете следното:

keytool -v -list -keystore keystore.jks -alias geekflareserver

Избройте сертификати в KeyStore

Ако искате да проверите сертификатите, съхранени в хранилището за ключове по подразбиране, използвайте командата:

keytool -list -storepass passforkeystore

Трябва да замените „passforkeystore“ с паролата, която сте задали.

  Всичко, което трябва да знаете

Вижте информацията за сертификата

Ако трябва да проверите подробностите за единичен сертификат, можете да използвате псевдонима му, без да указвате базата данни на keystone.

Ето как изглежда:

keytool -list -v -alias pctechbg.net -storepass passforkeystore

Преглед на сертификата в PEM формат

PEM е един от най-разпространените формати за сертификати и криптографски ключове. Ако искате да проверите сертификат с PEM, въведете следното:

keytool -v -printcert -file pctechbg.net.crt -rfc

Променете парола на Java Keystore

Ако вече сте създали парола за Java Keystore, можете да промените паролата с помощта на командата:

keytool -delete -alias pctechbg.net -keystore keystore.jks

Изтриване на сертификат от Java Keystore

Можете да посочите Java Keystore и неговия псевдоним, за да го изтриете. Например:

keytool -delete -alias pctechbg.net -keystore keystore.jks

Разгледайте командата и получете помощ

Командата има няколко аргумента и разширения за извършване на много неща. В зависимост от вашия случай на употреба, може или не може да се наложи да използвате всички от тях.

Така че, ако искате да се потопите дълбоко в командните опции, винаги можете да въведете:

keytool -help

И в двата случая, ако използвате Linux терминал, бих препоръчал да прочетете страницата man (manual) с тази команда:

man keytool

С командата man можете да получите всички подробности, от които се нуждаете за командата keytool.

Така че, запазете го като своя суперсила, за да научите всичко, което можете за него!

Обобщавайки

Пътят на файловете и други опции за персонализиране може да е малко по-различен от платформата, която използвате. Можете да се обърнете към документацията на Oracle и за стандартизираните опции.

Keytool е отличен инструмент за редица задачи. Тествайте го и вижте какво можете да направите с него!

Можете също така да разгледате някои команди на Linux, за да поддържате и поддържате системите работещи оптимално.