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

By rik

Hantera kryptografiska nycklar och certifikat med Keytool

Keytool är ett kraftfullt kommandoradsverktyg som ger dig möjlighet att administrera och lagra kryptografiska nycklar och digitala certifikat.

Om Java är installerat på din dator kan du dra nytta av kommandot keytool för att utföra en mängd olika uppgifter. Du kan bland annat importera certifikat från certifikatutfärdare (CA), granska listor med certifikat, generera självsignerade certifikat, säkert lagra lösenord och offentliga/privata nycklar. Verktyget erbjuder många fler användningsområden.

Känns det förvirrande? Lugn, jag kommer att förklara allt på ett enkelt sätt när du fortsätter läsa.

Jag kommer att använda Linux för att demonstrera kommandona och ge dig exempel.

Men du kan även använda keytool i Windows och macOS.

Vad är ett keytool-kommando?

Det är ett instrument för hantering av nycklar och certifikat. Det låter dig spara privata och offentliga nyckelpar, som ofta används för att bekräfta behörighet till tjänster.

Med tanke på ämnet för den här artikeln kan vi dra slutsatsen att keytool främst används av systemadministratörer och utvecklare.

Det är oftast sant, men en användare kan också använda keytool för att lagra lösenord och hemliga nycklar för autentisering, kryptering och dekryptering. Om du är nyfiken borde du definitivt prova det själv.

Om du inte är bekant med konceptet kryptografiska nycklar, kanske du vill läsa vår artikel om datakryptering innan du testar keytool.

Du kan också kika på exemplen för OpenSSL-kommandon för att få en uppfattning om skillnaderna och vad du kan göra med båda.

Skapa ett självsignerat certifikat

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

Ett självsignerat certifikat, till skillnad från ett SSL-certifikat som du köper, används primärt i utvecklings- och testsammanhang för att upprätta en säker anslutning.

Du kan skapa ett genom att använda keytool-kommandots syntax som anges ovan. Här är ett exempel:

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

Du kan välja valfritt namn som alias, jag använder adminvista.com som platshållare. Du kan justera giltighetstiden och bestämma ett lösenord för Keystore, som ersätter ”passforkeystore” i kommandot ovan.

Observera att endast ett lösenord är tillåtet för PKCS12 KeyStores. Det är dock en praktisk Keystore-typ som inte är unik för Java.

Om du behöver olika lösenord för din Keystore och certifikatet, kan du specifikt ange för keytool att använda ett annat gränssnitt.

Du kan läsa mer om detta i den officiella dokumentationen.

När du har påbörjat processen kommer den att be om detaljer för att fastställa din identitet. Så här ser det 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

Generera en Java Keystore och ett nyckelpar

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

Skapa en Java Keystore och importera ett certifikat

Se till att du har ett giltigt certifikat, eller har genererat ett tidigare. När detta är gjort kan du importera det och skapa en Java Keystore.

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

Generera ett nyckelpar till standardnyckellagret med subjekt

Du kan snabbt skapa ett nyckelpar (med namnet ”ca”) med det här kommandot:

keytool -alias ca -dname CN=CA -genkeypair

Skapa en kedja av signerade certifikat

Anta att du har skapat nyckelpar för ca och ca1. Du kan bygga en kedja av signerade certifikat där ca signerar ca1 med de här kommandona:

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

Du kan utöka kedjan med ytterligare två nyckelpar, ca1 och ca2, där ca1 signerar ca2.

Importera ett certifikat

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

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

Generera en CSR för en befintlig Keystore

Om du redan har skapat en Keystore kan du generera en Certificate Signing Request (CSR).

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

Visa certifikat lagrade i en Java Keystore

En Keystore kan rymma flera certifikat. Låt oss säga att vi ska kolla listan över certifikat i databasen ”keystore.jks”. Då skriver vi in följande:

keytool -v -list -keystore keystore.jks

Utskriften ser 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

Granska information om ett enskilt certifikat

Om du redan har genererat ett certifikat kan du få mer detaljerad information med hjälp av det här kommandot:

keytool -v -printcert -file server.crt

Visa certifikat i en Java Keystore

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

keytool -v -list -keystore keystore.jks

Visa Keystore med alias och databas

Om du vill granska en Keystore med hjälp av dess alias (som du angav när du skapade den) skriver du in följande:

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

Visa certifikat i Keystore

Om du vill granska certifikaten som finns i standard Keystore använder du det här kommandot:

keytool -list -storepass passforkeystore

Kom ihåg att ersätta ”passforkeystore” med det lösenord du valde.

Visa certifikatinformation

Om du behöver granska information om ett specifikt certifikat kan du använda dess alias utan att behöva specificera databasen.

Så här gör du:

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

Visa certifikat i PEM-format

PEM är ett vanligt format för certifikat och kryptografiska nycklar. För att visa ett certifikat i PEM-format, skriver du in:

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

Ändra lösenord för en Java Keystore

Om du redan har ett lösenord för en Java Keystore kan du ändra det med det här kommandot:

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

Radera ett certifikat från en Java Keystore

Du kan ange en Java Keystore och dess alias för att ta bort certifikatet. Exempel:

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

Utforska kommandot och få hjälp

Kommandot har många argument och tillägg för att göra olika saker. Beroende på ditt behov kan det hända att du behöver använda flera av dem.

Om du vill undersöka de olika kommandotillvalen kan du skriva in:

keytool -help

Om du använder en Linux-terminal rekommenderar jag även att du läser man-sidan med det här kommandot:

man keytool

Med kommandot ”man” får du all information du behöver om kommandot keytool.

Så, använd den kunskapen och lär dig så mycket som möjligt om det här kraftfulla verktyget!

Sammanfattning

Sökvägen till filer och andra inställningar kan variera lite beroende på operativsystem. Du kan även hänvisa till Oracles dokumentation för standardinställningar.

Keytool är ett fantastiskt verktyg för många uppgifter. Testa det och se vad du kan göra!

Du kan också utforska några Linux-kommandon för att upprätthålla och optimera systemens funktion.