17 Keytool Command Exempel att känna till som Sysadmin och utvecklare

Keytool är ett kommandoradsverktyg som låter dig hantera/lagra kryptografiska nycklar och certifikat.

Om ditt system har Java installerat kan du använda kommandot keytool för att importera ett CA-certifikat, lista certifikat, skapa självsignerade certifikat, lagra lösenordsfraser och offentliga/privata nycklar och göra många fler saker.

Förvirrad? Oroa dig inte; Jag kommer att förklara det i enklare termer när du läser.

Observera att jag använder Linux för att testa kommandona och förklara för dig lite mer om det med exempel.

Du kan också använda Keytool-kommandon på Windows och macOS.

Vad är ett tangentverktygskommando?

Det är ett verktyg för nyckel- och certifikathantering. Det låter dig lagra privata/offentliga nyckelpar, som vanligtvis är för att verifiera/autenticera åtkomst till tjänster.

Med tanke på titeln på den här artikeln kan man anta att kommandot främst används av systemadministratörer och utvecklare.

För det mesta, ja, men en användare kan bli kreativ med kommandot keytool för att lagra lösenfraser och hemliga nycklar för autentisering, kryptering och dekrypteringsändamål. Så om du är nyfiken bör du prova det på ditt system.

Om du är ny på konceptet med kryptografiska nycklar, kanske du vill kolla in vår artikel om datakryptering innan du provar keytool-kommandon.

Dessutom kan du kolla in OpenSSL-kommandoexemplen också ge dig en uppfattning om hur det är annorlunda och vad du kan göra med någon av dem.

Skapa ett självsignerat certifikat

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

Till skillnad från ett SSL-certifikat som du köper, används ett självsignerat certifikat endast i utvecklings-/testningssyfte för att använda en säker anslutning.

Du kan skapa en med hjälp av keytool-kommandosyntaxen som nämns ovan. Så här ser det till exempel ut:

keytool -genkeypair -alias adminvista.com -keypass passforkeystore -validity 365 -storepass passforkeystore

Du kan använda vilket namn som helst för aliaset; Jag använder adminvista.com som platshållartext. Du kan anpassa giltigheten och ange ett lösenord för Keystore som ersätter ”passforkeystore” i kommandot ovan.

Observera att endast ett lösenord stöds för PKCS12 KeyStores. Det är dock en bekväm Keystore-typ som inte är Java-specifik.

Om du behöver två olika lösenord för ditt Keystore och certifikatet, kanske du vill uttryckligen tala om för keytool-kommandot att använda ett annat gränssnitt.

Du kan läsa mer om det i dess officiella dokumentation.

När du har gått vidare med skapandet kommer det att be om ytterligare detaljer för äkthet. Så här ska det se ut:

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

Skapa ett Java Keystore och Key Pair

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

Skapa ett Java Keystore och importera ett certifikat

Se till att du har ett giltigt certifikat eller har genererat ett tidigare; när det är klart kan du importera det och skapa ett Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias adminvista.com

Generera ett nyckelpar till standardnyckellageret med ämne

Du kan snabbt skapa ett nyckelpar (säg med namnet ”ca”) med följande kommando:

keytool -alias ca -dname CN=CA -genkeypair

Skapa en kedja av signerade certifikat

Anta att du har skapat nyckelpar av ca och ca1. Du kan skapa en kedja av signerade certifikat där ca signerar ca1 med följande kommandon:

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

Du kan komplettera kedjan med ytterligare två nyckelpar ca1 och ca2, där ca1 tecken ca2.

Importera ett certifikat

Om du vill importera ett certifikat från en tillgänglig fil, så här kan du göra:

keystool -import -alias adminvista.com -file geekflareserver.cer

Skapa en begäran om certifikatsignering (CSR) för det befintliga nyckelarkivet

Med tanke på att du redan har skapat en Keystore kan du generera en CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file adminvista.com.csr

Lista certifikat lagrade i Java Keystore

Ett nyckellager kan ha flera poster av certifikat. Förutsatt att vi kontrollerar listan över certifikat i databasen ”keystore.jks”, här är vad vi behöver skriva in:

keytool -v -list -keystore keystore.jks

Utgången för detta kommer att se ut så här:

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

Kontrollera innehållet i ett enskilt certifikat

Med tanke på att du redan har ett genererat certifikat kan du kontrollera mer om det med följande:

keytool -v -printcert -file server.crt

Visa certifikat i en Java Keystore

Du kan lista alla certifikat från en Keystore-databas. Så här ser kommandot ut:

keytool -v -list -keystore keystore.jks

Visa nyckellager med hjälp av ett alias och nyckellager

Om du vill kontrollera en Keystore med dess alias som du ställde in när du skapade den, skriv in följande:

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

Lista certifikat i KeyStore

Om du vill kontrollera certifikaten som är lagrade i standardnyckelarkivet, använd kommandot:

keytool -list -storepass passforkeystore

Du måste ersätta ”passforkeystore” med lösenordet du har angett.

Visa certifikatinformation

Om du behöver kontrollera detaljerna för ett enskilt certifikat kan du använda dess alias utan att ange keystone-databasen.

Så här ser det ut:

keytool -list -v -alias adminvista.com -storepass passforkeystore

Visa certifikat i PEM-format

PEM är ett av de vanligaste formaten för certifikat och kryptografiska nycklar. Om du vill kontrollera ett certifikat med PEM, skriv in följande:

keytool -v -printcert -file adminvista.com.crt -rfc

Ändra ett Java Keystore-lösenord

Om du redan har skapat ett lösenord för Java Keystore kan du ändra lösenordet med kommandot:

keytool -delete -alias adminvista.com -keystore keystore.jks

Ta bort ett certifikat från Java Keystore

Du kan ange Java Keystore och dess alias för att radera det. Till exempel:

keytool -delete -alias adminvista.com -keystore keystore.jks

Utforska kommandot och få hjälp

Kommandot har flera argument och tillägg för att få många saker gjorda. Beroende på ditt användningsfall kanske du behöver använda alla.

Så om du vill dyka djupt efter kommandoalternativen kan du alltid skriva in:

keytool -help

I båda fallen, om du använder en Linux-terminal, rekommenderar jag att du läser man (manual) sidan med detta kommando:

man keytool

Med kommandot man kan du få alla detaljer du behöver om kommandot keytool.

Så behåll det din superkraft att lära dig allt du kan om det!

Avslutar

Sökvägen till filer och andra anpassningsalternativ kan skilja sig lite från den plattform du använder. Du kan också hänvisa till Oracles dokumentation för de standardiserade alternativen.

Keytool är ett utmärkt verktyg för en rad uppgifter. Testa det och se vad du kan göra med det!

Du kan också utforska några Linux-kommandon för att underhålla och hålla systemen igång optimalt.