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.