Keytool este un utilitar de linie de comandă care vă permite să gestionați/să stocați chei criptografice și certificate.
Dacă sistemul dvs. are Java instalat, puteți utiliza comanda keytool pentru a importa un certificat CA, a lista certificate, a crea certificate autosemnate, a stoca fraze de acces și chei publice/private și pentru a face multe alte lucruri.
Confuz? nu te supara; Îl voi explica în termeni mai simpli pe măsură ce citiți.
Rețineți că folosesc Linux pentru a testa comenzile și pentru a vă explica puțin mai multe despre asta cu exemple.
Puteți utiliza comenzile Keytool și pe Windows și macOS.
Cuprins
Ce este o comandă Keytool?
Este un utilitar de gestionare a cheilor și certificatelor. Vă permite să stocați perechi de chei private/publice, care sunt de obicei pentru a verifica/autentifica accesul la servicii.
Având în vedere titlul acestui articol, se poate presupune că comanda este utilizată în principal de administratorii de sistem și dezvoltatorii.
În cea mai mare parte, da, dar un utilizator poate fi creativ cu comanda keytool pentru a stoca fraze de acces și chei secrete în scopuri de autentificare, criptare și decriptare. Deci, dacă sunteți curios, ar trebui să îl încercați pe sistemul dvs.
Dacă sunteți nou în conceptul de chei criptografice, vă recomandăm să consultați articolul nostru despre criptarea datelor înainte de a încerca comenzile keytool.
În plus, consultarea exemplelor de comandă OpenSSL vă poate oferi, de asemenea, o idee despre cum este diferită și ce puteți face cu oricare dintre ele.
Creați un certificat autosemnat
keytool -genkeypair -alias <alias> -keypass <keypass> -validity <validity> -storepass <storepass>
Spre deosebire de un certificat SSL pe care îl achiziționați, un certificat autosemnat este utilizat numai în scopuri de dezvoltare/testare pentru a utiliza o conexiune securizată.
Puteți genera unul folosind sintaxa comenzii keytool menționată mai sus. De exemplu, iată cum arată:
keytool -genkeypair -alias tipstrick.ro -keypass passforkeystore -validity 365 -storepass passforkeystore
Puteți folosi orice nume pentru alias; Folosesc tipstrick.ro ca text substituent. Puteți personaliza valabilitatea și specifica o parolă pentru Keystore care înlocuiește „passforkeystore” în comanda de mai sus.
Rețineți că doar o singură parolă este acceptată pentru KeyStores PKCS12. Cu toate acestea, este un tip de Keystore convenabil care nu este specific Java.
Dacă aveți nevoie de două parole diferite pentru depozitul de chei și pentru certificat, este posibil să doriți să spuneți în mod explicit comenzii keytool să folosească o altă interfață.
Puteți citi mai multe despre el în documentația sa oficială.
Odată ce continuați cu crearea, acesta va solicita detalii suplimentare pentru autenticitate. Iată cum ar trebui să arate:
What is your first and last name? [Unknown]: Ankush What is the name of your organizational unit? [Unknown]: tipstrick.ro What is the name of your organization? [Unknown]: tipstrick.ro 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=tipstrick.ro, O=tipstrick.ro, L=Bhubaneswar, ST=Odisha, C=91 correct? [no]: yes
Creați un depozit de chei Java și o pereche de chei
keytool -genkeypair -keyalg RSA -keysize 2048 -keystore keystore.jks -alias geekflarejava -validity 3650
Generați un depozit de chei Java și importați un certificat
Asigurați-vă că aveți un certificat valid sau ați generat unul mai devreme; odată terminat, îl puteți importa și genera un Java Keystore.
keytool -importcert -file test.crt -keystore truststore.jks -alias tipstrick.ro
Generați o pereche de chei în depozitul de chei implicit cu subiect
Puteți genera rapid o pereche de taste (să spunem cu numele „ca”) folosind următoarea comandă:
keytool -alias ca -dname CN=CA -genkeypair
Creați un lanț de certificate semnate
Să presupunem că ați creat perechi de chei ca și ca1. Puteți crea un lanț de certificate semnate în care ca va semna ca1 cu următoarele comenzi:
keytool -alias ca1 -certreq
keytool -alias ca -gencert -ext san=dns:ca1
keytool -alias ca1 -importcert
Puteți completa lanțul cu încă două perechi de chei ca1 și ca2, unde ca1 va semna ca2.
Importul unui certificat
Dacă doriți să importați un certificat dintr-un fișier disponibil, iată ce puteți face:
keystool -import -alias tipstrick.ro -file geekflareserver.cer
Creați o cerere de semnare a certificatului (CSR) pentru depozitul de chei existent
Având în vedere că ați creat deja un Keystore, puteți genera un CSR.
keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file tipstrick.ro.csr
Listează certificatele stocate în Java Keystore
Un depozit de chei poate avea mai multe intrări de certificate. Presupunând că verificăm lista de certificate din baza de date „keystore.jks”, iată ce trebuie să introducem:
keytool -v -list -keystore keystore.jks
Ieșirea pentru aceasta va arăta astfel:
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=tipstrick.ro, L=Bhubaneswar, ST=od, C=91 Issuer: CN=Ankush, OU=Geek, O=tipstrick.ro, 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
Verificați conținutul unui singur certificat
Având în vedere că aveți deja un certificat generat, puteți verifica mai multe despre acesta folosind următoarele:
keytool -v -printcert -file server.crt
Vedeți certificatele într-un depozit de chei Java
Puteți lista toate certificatele dintr-o bază de date Keystore. Iată cum arată comanda:
keytool -v -list -keystore keystore.jks
Vizualizați depozitul de chei folosind un alias și un depozit de chei
Dacă doriți să verificați un depozit de chei folosind numele de alias pe care l-ați setat la crearea acestuia, introduceți următoarele:
keytool -v -list -keystore keystore.jks -alias geekflareserver
Listează certificatele în KeyStore
Dacă doriți să verificați certificatele stocate în Keystore implicit, utilizați comanda:
keytool -list -storepass passforkeystore
Trebuie să înlocuiți „passforkeystore” cu parola pe care ați setat-o.
Vedeți informații despre certificat
Dacă trebuie să verificați detaliile pentru un singur certificat, puteți utiliza aliasul acestuia fără a specifica baza de date keystone.
Iată cum arată:
keytool -list -v -alias tipstrick.ro -storepass passforkeystore
Vedeți certificatul în format PEM
PEM este unul dintre cele mai comune formate pentru certificate și chei criptografice. Dacă doriți să verificați un certificat cu PEM, introduceți următoarele:
keytool -v -printcert -file tipstrick.ro.crt -rfc
Schimbați o parolă Java Keystore
Dacă ați creat deja o parolă pentru Java Keystore, puteți schimba parola folosind comanda:
keytool -delete -alias tipstrick.ro -keystore keystore.jks
Ștergeți un certificat din Java Keystore
Puteți specifica Java Keystore și aliasul acestuia pentru a-l șterge. De exemplu:
keytool -delete -alias tipstrick.ro -keystore keystore.jks
Explorați comanda și obțineți ajutor
Comanda are mai multe argumente și extensii pentru a face multe lucruri. În funcție de cazul dvs. de utilizare, este posibil să fie necesar sau nu să le utilizați pe toate.
Deci, dacă doriți să vă aprofundați în opțiunile de comandă, puteți oricând să tastați:
keytool -help
În ambele cazuri, dacă utilizați un terminal Linux, aș recomanda să citiți pagina de manual (manual) cu această comandă:
man keytool
Cu comanda man, puteți obține toate detaliile de care aveți nevoie despre comanda keytool.
Așadar, păstrează-ți superputerea pentru a afla tot ce poți despre ea!
Încheierea
Calea fișierelor și alte opțiuni de personalizare ar putea fi puțin diferite de platforma pe care o utilizați. Puteți consulta și documentația Oracle pentru opțiunile standardizate.
Keytool este un instrument excelent pentru o serie de sarcini. Testează-l și vezi ce poți face cu el!
De asemenea, puteți explora câteva comenzi Linux pentru a menține și a menține sistemele să funcționeze optim.