17 Příklady příkazů Keytool, které musíte znát jako správce systému a vývojář

Keytool je nástroj pro práci s příkazovou řádkou, který umožňuje spravovat a uchovávat kryptografické klíče a certifikáty.

Pokud máte ve svém systému nainstalovanou Javu, můžete pomocí příkazu keytool importovat certifikáty certifikační autority (CA), zobrazovat certifikáty, generovat certifikáty s vlastním podpisem, ukládat přístupová hesla a veřejné i soukromé klíče, a také provádět další operace.

Zdá se vám to složité? Žádný strach, vše si objasníme postupně, srozumitelně.

Pro testování a ilustraci příkazů budu používat Linux, ale tyto příkazy jsou dostupné i pro operační systémy Windows a macOS.

Co je to příkaz Keytool?

Keytool je nástroj pro správu a uchovávání klíčů a certifikátů. Umožňuje ukládat páry soukromých a veřejných klíčů, které se obvykle využívají k ověřování a autentizaci přístupu ke službám.

Jak název článku napovídá, tento příkaz je primárně určen pro správce systémů a vývojáře.

To je sice pravda, nicméně i běžní uživatelé mohou kreativně využít příkaz keytool k ukládání přístupových hesel a tajných klíčů pro účely ověřování, šifrování a dešifrování. Pokud jste zvědaví, vyzkoušejte si jej ve svém systému.

Pokud jste nováčkem v oblasti kryptografických klíčů, doporučujeme vám nejprve si přečíst náš článek o šifrování dat. Poté se můžete s klidem pustit do zkoušení příkazů keytool.

Pro lepší pochopení rozdílů a možností vám také může pomoci prozkoumání příkladů příkazů OpenSSL.

Generování certifikátu s vlastním podpisem

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

Na rozdíl od SSL certifikátu, který si zakoupíte u certifikační autority, certifikát s vlastním podpisem se používá především pro účely vývoje a testování zabezpečeného připojení.

Můžete si ho vygenerovat pomocí výše uvedené syntaxe příkazu keytool. Například takto:

keytool -genkeypair -alias etechblog.cz -keypass passforkeystore -validity 365 -storepass passforkeystore

Pro alias můžete použít libovolné jméno, v tomto případě jako zástupný text používám „etechblog.cz“. Platnost certifikátu a heslo k úložišti klíčů (v tomto příkladu „passforkeystore“) si můžete upravit podle svých potřeb.

Pamatujte, že pro úložiště klíčů typu PKCS12 je podporováno pouze jedno heslo. Nicméně, jedná se o vhodný typ úložiště klíčů, který není specifický pouze pro platformu Java.

Pokud potřebujete dvě různá hesla pro úložiště klíčů a certifikát, je nutné explicitně příkazu keytool sdělit, aby použil odlišné rozhraní.

Více informací najdete v oficiální dokumentaci k nástroji keytool.

Po spuštění příkazu budete požádáni o zadání dalších informací pro ověření pravosti certifikátu. Zhruba to bude vypadat takto:

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

Vytvoření úložiště klíčů Java a páru klíčů

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

Generování úložiště klíčů Java a import certifikátu

Ujistěte se, že máte platný certifikát, který jste si již vygenerovali. Po jeho získání ho můžete importovat a vygenerovat úložiště klíčů Java.

keytool -importcert -file test.crt -keystore truststore.jks -alias etechblog.cz

Vygenerování páru klíčů do výchozího úložiště klíčů s předmětem

Pomocí následujícího příkazu můžete rychle vygenerovat pár klíčů (například s názvem „ca“):

keytool -alias ca -dname CN=CA -genkeypair

Vytvoření řetězce podepsaných certifikátů

Předpokládejme, že jste si již vygenerovali páry klíčů ca a ca1. Nyní můžete vytvořit řetězec podepsaných certifikátů, kde ca podepíše ca1 pomocí následujících příkazů:

keytool -alias ca1 -certreq
keytool -alias ca -gencert -ext san=dns:ca1
keytool -alias ca1 -importcert

Řetězec můžete prodloužit o další dva páry klíčů ca1 a ca2, kde ca1 bude podepisovat ca2.

Import certifikátu

Chcete-li importovat certifikát z existujícího souboru, použijte následující příkaz:

keytool -import -alias etechblog.cz -file geekflareserver.cer

Vytvoření žádosti o podpis certifikátu (CSR) pro existující úložiště klíčů

Pokud jste již vytvořili úložiště klíčů, můžete pro něj vygenerovat CSR (Certificate Signing Request).

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file etechblog.cz.csr

Zobrazení certifikátů uložených v úložišti klíčů Java

Úložiště klíčů může obsahovat více záznamů s certifikáty. Pokud chceme zobrazit seznam certifikátů v databázi „keystore.jks“, musíme zadat následující příkaz:

keytool -v -list -keystore keystore.jks

Výstup by mohl vypadat takto:

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=etechblog.cz, L=Bhubaneswar, ST=od, C=91
Issuer: CN=Ankush, OU=Geek, O=etechblog.cz, 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

Kontrola obsahu jednoho certifikátu

Pokud již máte vygenerovaný certifikát, můžete si o něm zobrazit více informací pomocí následujícího příkazu:

keytool -v -printcert -file server.crt

Zobrazení certifikátů v úložišti klíčů Java

Můžete vypsat všechny certifikáty z databáze úložiště klíčů. Příkaz vypadá takto:

keytool -v -list -keystore keystore.jks

Zobrazení úložiště klíčů pomocí aliasu a úložiště klíčů

Pokud chcete zkontrolovat konkrétní úložiště klíčů pomocí jeho aliasu, který jste nastavili při jeho vytváření, použijte následující příkaz:

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

Výpis certifikátů v KeyStore

Pro zobrazení certifikátů uložených ve výchozím úložišti klíčů použijte tento příkaz:

keytool -list -storepass passforkeystore

Nezapomeňte „passforkeystore“ nahradit heslem, které jste nastavili.

Zobrazení informací o certifikátu

Pokud potřebujete zobrazit podrobnosti pouze jednoho konkrétního certifikátu, můžete použít jeho alias, aniž byste museli specifikovat celou databázi klíčového úložiště.

Příkaz vypadá takto:

keytool -list -v -alias etechblog.cz -storepass passforkeystore

Zobrazení certifikátu ve formátu PEM

PEM je jeden z nejběžnějších formátů pro certifikáty a kryptografické klíče. Pokud chcete zobrazit certifikát ve formátu PEM, zadejte následující příkaz:

keytool -v -printcert -file etechblog.cz.crt -rfc

Změna hesla úložiště klíčů Java

Pokud jste již vytvořili heslo pro úložiště klíčů Java, můžete ho změnit pomocí následujícího příkazu:

keytool -delete -alias etechblog.cz -keystore keystore.jks

Smazání certifikátu z úložiště klíčů Java

Pro smazání certifikátu je nutné zadat úložiště klíčů Java a jeho alias. Příklad:

keytool -delete -alias etechblog.cz -keystore keystore.jks

Prozkoumání příkazu a zobrazení nápovědy

Příkaz keytool nabízí celou řadu argumentů a rozšíření, díky kterým lze provádět mnoho různých operací. V závislosti na vašem konkrétním použití nemusíte využít všechny dostupné možnosti.

Pokud chcete podrobně prozkoumat všechny možnosti příkazu keytool, můžete zadat tento příkaz:

keytool -help

V případě, že používáte linuxový terminál, doporučujeme vám také prostudovat manuálovou stránku příkazu:

man keytool

V manuálové stránce najdete všechny podrobnosti, které potřebujete vědět o příkazu keytool.

Takže neváhejte a využijte své superschopnosti k tomu, abyste se o tomto užitečném nástroji dozvěděli co nejvíce!

Závěrem

Cesty k souborům a další možnosti konfigurace se mohou mírně lišit v závislosti na operačním systému, který používáte. Standardizované možnosti si můžete ověřit v dokumentaci společnosti Oracle.

Keytool je vynikající nástroj pro celou řadu úloh. Vyzkoušejte ho a zjistěte, co všechno s ním dokážete!

Můžete si také prostudovat některé příkazy Linuxu pro údržbu a optimalizaci provozu vašich systémů.