17 Příklady příkazů Keytool, které musíte znát jako správce systému a vývojář
Keytool je nástroj příkazového řádku, který umožňuje spravovat/ukládat kryptografické klíče a certifikáty.
Pokud má váš systém nainstalovanou Javu, můžete pomocí příkazu keytool importovat certifikát CA, vypisovat certifikáty, vytvářet certifikáty s vlastním podpisem, ukládat přístupové fráze a veřejné/soukromé klíče a provádět mnoho dalších věcí.
Zmatený? Nebojte se; Při čtení to vysvětlím jednoduššími termíny.
Všimněte si, že používám Linux k testování příkazů a vysvětlím vám o tom trochu více na příkladech.
Příkazy Keytool můžete používat také ve Windows a macOS.
Co je to příkaz Keytool?
Je to nástroj pro správu klíčů a certifikátů. Umožňuje ukládat páry soukromých/veřejných klíčů, které obvykle slouží k ověření/ověření přístupu ke službám.
Vzhledem k názvu tohoto článku lze předpokládat, že příkaz používají především správci systému a vývojáři.
Z velké části ano, ale uživatel může být kreativní s příkazem keytool k ukládání přístupových frází a tajných klíčů pro účely ověřování, šifrování a dešifrování. Takže, pokud jste zvědaví, měli byste to vyzkoušet na svém systému.
Pokud jste s konceptem kryptografických klíčů nováčkem, možná si budete chtít přečíst náš článek o šifrování dat, než vyzkoušíte příkazy keytool.
Kromě toho, prohlédnutí příkladů příkazů OpenSSL vám také může poskytnout určitou představu o tom, jak se liší a co můžete dělat s kterýmkoli z nich.
Vytvořte certifikát s vlastním podpisem
keytool -genkeypair -alias <alias> -keypass <keypass> -validity <validity> -storepass <storepass>
Na rozdíl od certifikátu SSL, který si zakoupíte, se certifikát s vlastním podpisem používá pouze pro účely vývoje/testování pro použití zabezpečeného připojení.
Můžete jej vygenerovat pomocí výše uvedené syntaxe příkazu keytool. Vypadá to například takto:
keytool -genkeypair -alias etechblog.cz -keypass passforkeystore -validity 365 -storepass passforkeystore
Pro alias můžete použít jakýkoli název; Jako zástupný text používám etechblog.cz. Můžete upravit platnost a zadat heslo pro úložiště klíčů, které ve výše uvedeném příkazu nahradí „passforkeystore“.
Pamatujte, že pro úložiště klíčů PKCS12 je podporováno pouze jedno heslo. Je to však vhodný typ úložiště klíčů, který není specifický pro Java.
Pokud potřebujete dvě různá hesla pro úložiště klíčů a certifikát, možná budete chtít příkazu keytool výslovně sdělit, aby použil jiné rozhraní.
Více si o něm můžete přečíst v jeho oficiální dokumentaci.
Jakmile budete pokračovat ve vytváření, požádá vás o další podrobnosti pro pravost. Mělo by to vypadat následovně:
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řte úložiště klíčů Java a pár klíčů
keytool -genkeypair -keyalg RSA -keysize 2048 -keystore keystore.jks -alias geekflarejava -validity 3650
Vygenerujte úložiště klíčů Java a importujte certifikát
Ujistěte se, že máte platný certifikát nebo jste si jej vygenerovali dříve; po dokončení jej můžete importovat a vygenerovat úložiště klíčů Java.
keytool -importcert -file test.crt -keystore truststore.jks -alias etechblog.cz
Vygenerujte klíčový pár 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íčů (řekněme s názvem „ca“):
keytool -alias ca -dname CN=CA -genkeypair
Vytvořte řetězec podepsaných certifikátů
Předpokládejme, že jste vytvořili páry klíčů ca a ca1. 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 doplnit dalšími dvěma páry klíčů ca1 a ca2, kde ca1 bude podepisovat ca2.
Import certifikátu
Chcete-li importovat certifikát z dostupného souboru, postupujte takto:
keystool -import -alias etechblog.cz -file geekflareserver.cer
Vytvořte žádost o podpis certifikátu (CSR) pro existující úložiště klíčů
Vzhledem k tomu, že jste již vytvořili úložiště klíčů, můžete vygenerovat CSR.
keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file etechblog.cz.csr
Seznam certifikátů uložených v úložišti klíčů Java
Úložiště klíčů může mít více záznamů certifikátů. Za předpokladu, že kontrolujeme seznam certifikátů v databázi „keystore.jks“, musíme zadat následující:
keytool -v -list -keystore keystore.jks
Výstup pro to bude 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
Zkontrolujte obsah jednoho certifikátu
Vzhledem k tomu, že již máte vygenerovaný certifikát, můžete o něm zkontrolovat více pomocí následujícího:
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íčů. Takto vypadá příkaz:
keytool -v -list -keystore keystore.jks
Zobrazení úložiště klíčů pomocí aliasu a úložiště klíčů
Pokud chcete úložiště klíčů zkontrolovat pomocí jeho aliasu, který jste nastavili při jeho vytváření, zadejte následující:
keytool -v -list -keystore keystore.jks -alias geekflareserver
Seznam certifikátů v KeyStore
Pokud chcete zkontrolovat certifikáty uložené ve výchozím úložišti klíčů, použijte příkaz:
keytool -list -storepass passforkeystore
Musíte nahradit „passforkeystore“ heslem, které jste nastavili.
Zobrazit informace o certifikátu
Pokud potřebujete zkontrolovat podrobnosti pro jeden certifikát, můžete použít jeho alias, aniž byste zadali databázi klíčového kamene.
Vypadá to takto:
keytool -list -v -alias etechblog.cz -storepass passforkeystore
Zobrazit certifikát ve formátu PEM
PEM je jedním z nejběžnějších formátů pro certifikáty a kryptografické klíče. Pokud chcete zkontrolovat certifikát pomocí PEM, zadejte následující:
keytool -v -printcert -file etechblog.cz.crt -rfc
Změňte heslo úložiště klíčů Java
Pokud jste již vytvořili heslo pro Java Keystore, můžete heslo změnit pomocí příkazu:
keytool -delete -alias etechblog.cz -keystore keystore.jks
Odstraňte certifikát z úložiště klíčů Java
Chcete-li jej odstranit, můžete zadat úložiště klíčů Java a jeho alias. Například:
keytool -delete -alias etechblog.cz -keystore keystore.jks
Prozkoumejte The Command a získejte nápovědu
Příkaz má několik argumentů a rozšíření, aby bylo možné provést mnoho věcí. V závislosti na vašem případu použití je můžete nebo nemusíte použít všechny.
Pokud se tedy chcete ponořit hluboko do možností příkazů, můžete vždy zadat:
keytool -help
V obou případech, pokud používáte linuxový terminál, doporučuji přečíst si stránku man (manuál) s tímto příkazem:
man keytool
S příkazem man můžete získat všechny podrobnosti, které potřebujete o příkazu keytool.
Takže si ponechte svou superschopnost, abyste se o ní dozvěděli vše, co můžete!
Zabalit se
Cesta k souborům a další možnosti přizpůsobení se mohou trochu lišit od platformy, kterou používáte. Standardizované možnosti najdete také v dokumentaci Oracle.
Keytool je vynikající nástroj pro řadu úkolů. Vyzkoušejte to a uvidíte, co s tím můžete dělat!
Můžete také prozkoumat některé příkazy Linuxu pro údržbu a udržení optimálního chodu systémů.