Keytool е помощна програма от командния ред, която ви позволява да управлявате/съхранявате криптографски ключове и сертификати.
Ако вашата система има инсталирана Java, можете да използвате командата keytool, за да импортирате CA сертификат, да изброявате сертификати, да създавате самоподписани сертификати, да съхранявате пароли и публични/частни ключове и да правите много други неща.
объркани? Не се притеснявайте; Ще го обясня с по-прости думи, докато четете.
Имайте предвид, че използвам Linux, за да тествам командите и ви обяснявам малко повече за него с примери.
Можете също да използвате команди на Keytool в Windows и macOS.
Съдържание
Какво представлява командата Keytool?
Това е помощна програма за управление на ключове и сертификати. Тя ви позволява да съхранявате двойки частни/публични ключове, които обикновено са за проверка/удостоверяване на достъпа до услуги.
Като се има предвид заглавието на тази статия, може да се предположи, че командата се използва главно от системни администратори и разработчици.
В по-голямата си част, да, но потребителят може да бъде креативен с командата keytool, за да съхранява пароли и секретни ключове за целите на удостоверяване, криптиране и дешифриране. Така че, ако сте любопитни, трябва да го изпробвате на вашата система.
Ако не сте запознати с концепцията за криптографски ключове, може да искате да разгледате нашата статия за криптиране на данни, преди да опитате командите на keytool.
Освен това, разглеждането на примерите за команда 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.
Импортиране на сертификат
Ако искате да импортирате сертификат от наличен файл, ето какво можете да направите:
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, за да поддържате и поддържате системите работещи оптимално.