17 Примера команди Кеитоол које треба да знате као сисадмин и програмер

Keytool je alatka komandne linije koja vam omogućava da upravljate i skladištite kriptografske ključeve i sertifikate.

Ukoliko je Java instalirana na vašem sistemu, možete koristiti komandu keytool za uvoz CA sertifikata, listanje sertifikata, kreiranje samopotpisanih sertifikata, čuvanje pristupnih fraza, javnih i privatnih ključeva, i još mnogo toga.

Zvuči komplikovano? Ne brinite, objasniću sve jednostavnije kako budete čitali ovaj tekst.

Važno je napomenuti da koristim Linux za testiranje komandi, i da ću sve objašnjavati kroz primere.

Komande Keytool-a možete koristiti i na Windows i macOS operativnim sistemima.

Šta je komanda Keytool?

Ovo je uslužni program namenjen upravljanju ključevima i sertifikatima. Omogućava vam da čuvate parove privatnih i javnih ključeva, koji se obično koriste za verifikaciju i autentifikaciju pristupa različitim servisima.

S obzirom na naslov ovog teksta, može se zaključiti da ovu komandu uglavnom koriste sistemski administratori i programeri.

Iako je to uglavnom tačno, korisnik može biti kreativan sa keytool komandom i koristiti je za skladištenje pristupnih fraza i tajnih ključeva za potrebe autentifikacije, šifrovanja i dešifrovanja. Zato, ako ste radoznali, isprobajte je na svom sistemu.

Ukoliko ste novi u konceptu kriptografskih ključeva, preporučujemo da pogledate naš članak o šifrovanju podataka pre nego što se upustite u korišćenje komandi alata za ključeve.

Dodatno, pregled primera komandi OpenSSL-a takođe vam može pružiti bolji uvid u razlike između ova dva alata i njihove mogućnosti.

Kreirajte samopotpisani sertifikat

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

Za razliku od SSL sertifikata koje kupujete, samopotpisani sertifikat se primenjuje isključivo u svrhe razvoja i testiranja za uspostavljanje bezbedne veze.

Možete ga generisati koristeći gore navedenu sintaksu komande keytool. Na primer, evo kako to izgleda:

keytool -genkeypair -alias techblog.co.rs -keypass passforkeystore -validity 365 -storepass passforkeystore

Možete koristiti bilo koje ime za alias; ja koristim „techblog.co.rs“ kao primer. Takođe možete podesiti trajanje validnosti i lozinku za keystore zamenom „passforkeystore“ u navedenoj komandi.

Imajte na umu da samo jedna lozinka može biti korišćena za PKCS12 Keystores. Međutim, ovaj tip Keystore-a je praktičan jer nije specifičan za Javu.

Ukoliko vam trebaju dve različite lozinke, za skladište ključeva i za sam sertifikat, potrebno je da eksplicitno naznačite keytool komandi da koristi drugačiji interfejs.

Više o tome možete saznati u zvaničnoj dokumentaciji.

Kada nastavite sa kreiranjem, sistem će tražiti dodatne informacije radi autentifikacije. Evo kako bi to trebalo da izgleda:

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

Napravite Java skladište ključeva i par ključeva

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

Generišite Java skladište ključeva i uvezite sertifikat

Uverite se da imate validan sertifikat ili da ste ga prethodno generisali; nakon toga, možete ga uvesti i generisati Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias techblog.co.rs

Generišite par ključeva za podrazumevano skladište ključeva sa subjektom

Par ključeva možete brzo generisati (na primer, sa imenom „ca“) koristeći sledeću komandu:

keytool -alias ca -dname CN=CA -genkeypair

Napravite lanac potpisanih sertifikata

Pretpostavimo da ste kreirali parove ključeva „ca“ i „ca1“. Možete kreirati lanac potpisanih sertifikata tako da „ca“ potpisuje „ca1“ pomoću sledećih komandi:

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

Lanac možete upotpuniti sa još dva para ključeva „ca1“ i „ca2“, gde će „ca1“ potpisati „ca2“.

Uvoz sertifikata

Ako želite da uvezete sertifikat iz postojeće datoteke, evo kako to možete učiniti:

keystool -import -alias techblog.co.rs -file geekflareserver.cer

Kreirajte zahtev za potpisivanje sertifikata (CSR) za postojeće skladište ključeva

Pod pretpostavkom da ste već kreirali Keystore, možete generisati CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file techblog.co.rs.csr

Lista sertifikata uskladištenih u Java Keystore

Skladište ključeva može sadržati više unosa sertifikata. Ukoliko želimo da proverimo listu sertifikata u bazi podataka „keystore.jks“, potrebno je da unesemo sledeće:

keytool -v -list -keystore keystore.jks

Izlaz će izgledati otprilike ovako:

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

Proverite sadržaj jednog sertifikata

Pošto već imate generisan sertifikat, možete proveriti više detalja o njemu koristeći sledeću komandu:

keytool -v -printcert -file server.crt

Pregledajte sertifikate u Java skladištu ključeva

Možete listati sve sertifikate iz Keystore baze podataka. Evo kako izgleda komanda:

keytool -v -list -keystore keystore.jks

Prikažite Keystore koristeći Alias i Keystore

Ako želite da proverite Keystore koristeći njegov alias koji ste podesili prilikom kreiranja, unesite sledeće:

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

Navedite sertifikate u Keystore-u

Ako želite da proverite sertifikate uskladištene u podrazumevanom skladištu ključeva, koristite komandu:

keytool -list -storepass passforkeystore

Morate zameniti „passforkeystore“ sa lozinkom koju ste podesili.

Pogledajte informacije o sertifikatu

Ako treba da proverite detalje jednog sertifikata, možete koristiti njegov alias bez navođenja ključne baze podataka.

Evo kako to izgleda:

keytool -list -v -alias techblog.co.rs -storepass passforkeystore

Pogledajte sertifikat u PEM formatu

PEM je jedan od najčešćih formata za sertifikate i kriptografske ključeve. Ako želite da proverite sertifikat sa PEM-om, unesite sledeće:

keytool -v -printcert -file techblog.co.rs.crt -rfc

Promenite lozinku za Java skladište ključeva

Ako ste već kreirali lozinku za Java Keystore, možete je promeniti koristeći komandu:

keytool -delete -alias techblog.co.rs -keystore keystore.jks

Obrišite sertifikat iz Java Keystore-a

Možete odrediti Java Keystore i njegov alias da biste ga obrisali. Na primer:

keytool -delete -alias techblog.co.rs -keystore keystore.jks

Istražite komandu i potražite pomoć

Komanda ima nekoliko argumenata i ekstenzija za obavljanje različitih zadataka. U zavisnosti od vašeg konkretnog slučaja, možda nećete morati da koristite sve njih.

Stoga, ako želite dublje da istražite opcije komande, uvek možete uneti:

keytool -help

U svakom slučaju, ako koristite Linux terminal, preporučujem da pročitate man (manual) stranicu sa ovom komandom:

man keytool

Pomoću komande man, možete dobiti sve potrebne detalje o komandi keytool.

Zato, iskoristite svoju supermoć da naučite sve što možete o ovoj komandi!

Zaključak

Putanja do datoteka i ostale opcije prilagođavanja se mogu razlikovati u zavisnosti od platforme koju koristite. Takođe možete pogledati Oracle-ovu dokumentaciju za standardizovane opcije.

Keytool je izvanredan alat za različite zadatke. Isprobajte ga i otkrijte šta sve možete da uradite sa njim!

Takođe, možete istražiti i neke Linux komande za održavanje i optimizaciju rada vaših sistema.