Mester Keytool: 17 Kommandoer for Utviklere og Sysadminer

Introduksjon til Keytool: Et kraftig verktøy for nøkkeladministrasjon

Keytool er et kommandolinjeverktøy som gir deg muligheten til å håndtere og lagre kryptografiske nøkler og sertifikater. Tenk på det som et digitalt hvelv for dine digitale identiteter og sikkerhetsnøkler.

Dersom Java er installert på datamaskinen din, kan du benytte keytool til en rekke oppgaver. Du kan for eksempel importere et CA-sertifikat, hente ut en liste over eksisterende sertifikater, generere dine egne selvsignerte sertifikater, lagre passordfraser og offentlige/private nøkler, samt mange andre funksjoner.

Føles dette litt komplisert? Ikke bekymre deg, vi vil forklare det på en enkel og lettforståelig måte gjennom denne artikkelen.

For å demonstrere dette, vil vi benytte Linux i våre eksempler. Merk at de samme keytool-kommandoene kan brukes på både Windows og macOS.

Hva er egentlig en keytool-kommando?

Keytool er et verktøy for administrasjon av nøkler og sertifikater. Det gir deg mulighet til å lagre private/offentlige nøkkelpar, som i sin tur brukes for å verifisere og autentisere tilgang til ulike tjenester.

Med tanke på hva denne artikkelen handler om, kan man kanskje tro at denne kommandoen hovedsakelig brukes av systemadministratorer og utviklere. Det er delvis sant.

Men en kreativ bruker kan også benytte keytool til å lagre passordfraser og hemmelige nøkler for autentisering, kryptering og dekryptering. Så om du er nysgjerrig er det bare å teste det ut på din egen datamaskin.

Er du ny innenfor kryptografiske nøkler, anbefaler vi å lese vår artikkel om datakryptering først, før du begynner med keytool-kommandoer.

Videre kan det å se på eksempler med OpenSSL-kommandoer også gi deg en bedre forståelse for hvordan disse er annerledes og hva du kan gjøre med dem.

Hvordan lage et selvsignert sertifikat

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

Et selvsignert sertifikat er forskjellig fra et SSL-sertifikat du kjøper, og det er hovedsakelig beregnet for utviklings- og testformål hvor du trenger en sikker tilkobling.

Du kan generere et slikt sertifikat ved hjelp av syntaksen over. Her er et eksempel:

keytool -genkeypair -alias tipsbilk.net -keypass passforkeystore -validity 365 -storepass passforkeystore

Du kan fritt velge alias, vi bruker «tipsbilk.net» som et eksempel. Gyldigheten og passordet for keystore kan også tilpasses, her representert med «passforkeystore».

Vær oppmerksom på at kun ett passord støttes for PKCS12 KeyStores. Det er en fleksibel Keystore-type som ikke er spesifikk for Java.

Dersom du trenger to forskjellige passord for nøkkellageret og sertifikatet, må du eksplisitt fortelle keytool-kommandoen å bruke et annet grensesnitt.

Du kan finne mer informasjon om dette i den offisielle dokumentasjonen.

Når du fortsetter med opprettelsen, vil du bli bedt om å fylle ut ytterligere detaljer for autentisitet. Slik kan det se ut:

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

Lag et Java-nøkkellager og et nøkkelpar

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

Generer et Java-nøkkellager og importer et sertifikat

Før du importerer et sertifikat, forsikre deg om at du har et gyldig sertifikat. Når dette er på plass, kan du importere det og generere et Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias tipsbilk.net

Generer et nøkkelpar til standard nøkkellager med emne

Du kan raskt generere et nøkkelpar (la oss si med navnet «ca») ved hjelp av denne kommandoen:

keytool -alias ca -dname CN=CA -genkeypair

Lag en kjede med signerte sertifikater

Anta at du har laget nøkkelpar ved navn ca, og ca1. Du kan opprette en kjede av sertifikater der ca signerer ca1, ved hjelp av de følgende kommandoene:

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

Du kan forlenge kjeden ved å legge til ytterligere to nøkkelpar, ca1 og ca2, hvor ca1 signerer ca2.

Importere et sertifikat

Dersom du vil importere et sertifikat fra en eksisterende fil, kan du gjøre følgende:

keystool -import -alias tipsbilk.net -file geekflareserver.cer

Lag en forespørsel om sertifikatsignering (CSR) for det eksisterende nøkkellageret

Forutsatt at du allerede har opprettet et nøkkellager, kan du generere en CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file tipsbilk.net.csr

List opp sertifikater lagret i Java Keystore

Et nøkkellager kan inneholde flere sertifikater. For å sjekke listen over sertifikater i databasen «keystore.jks», kan du benytte denne kommandoen:

keytool -v -list -keystore keystore.jks

Resultatet av denne kommandoen kan se slik ut:

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

Sjekk innholdet i et enkelt sertifikat

Hvis du har generert et sertifikat, kan du sjekke mer informasjon om det med denne kommandoen:

keytool -v -printcert -file server.crt

Vis sertifikater i en Java Keystore

Du kan liste alle sertifikatene fra en nøkkellagerdatabase. Kommandoen ser slik ut:

keytool -v -list -keystore keystore.jks

Vis nøkkellager ved hjelp av et alias og nøkkellager

Dersom du ønsker å sjekke et nøkkellager ved å bruke aliasnavnet du ga det ved opprettelsen, kan du bruke følgende kommando:

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

List opp sertifikater i KeyStore

For å sjekke sertifikater lagret i standard nøkkellager, bruk denne kommandoen:

keytool -list -storepass passforkeystore

Husk å erstatte «passforkeystore» med det passordet du har brukt.

Se sertifikatinformasjon

Dersom du ønsker å se detaljene for et enkelt sertifikat, kan du bruke aliaset uten å spesifisere keystore-databasen.

Slik kan det se ut:

keytool -list -v -alias tipsbilk.net -storepass passforkeystore

Se sertifikatet i PEM-format

PEM er et vanlig format for sertifikater og kryptografiske nøkler. For å sjekke et sertifikat i PEM-format, kan du bruke denne kommandoen:

keytool -v -printcert -file tipsbilk.net.crt -rfc

Endre et Java Keystore-passord

Hvis du har opprettet et passord for Java Keystore tidligere, kan du endre det ved hjelp av denne kommandoen:

keytool -delete -alias tipsbilk.net -keystore keystore.jks

Slett et sertifikat fra Java Keystore

Du kan spesifisere Java Keystore og dets alias for å slette sertifikatet. Et eksempel på dette kan være:

keytool -delete -alias tipsbilk.net -keystore keystore.jks

Utforsk kommandoen og få hjelp

Kommandoen har mange argumenter og utvidelser for å utføre mange ulike oppgaver. Avhengig av ditt behov kan det hende du trenger å bruke mange av dem.

Dersom du ønsker en dypere forståelse av kommandoalternativene, kan du bruke:

keytool -help

Hvis du bruker en Linux-terminal, anbefaler vi å lese man-siden (manual) med denne kommandoen:

man keytool

Med man-kommandoen får du tilgang til all informasjon du trenger om keytool-kommandoen.

Se på den som en superkraft for å lære alt du kan om dette verktøyet!

Oppsummering

Plasseringen av filer og andre tilpasningsmuligheter kan variere avhengig av hvilken plattform du benytter. Du kan også referere til Oracles dokumentasjon for de standardiserte alternativene.

Keytool er et fantastisk verktøy som kan brukes til mange forskjellige oppgaver. Test det ut og se hva du kan få til!

Du kan også utforske andre Linux-kommandoer som kan være nyttige for å vedlikeholde og holde systemene dine i optimal stand.