Introduktion til keytool

Java Top

Jeg har lige annonceret det nye Lær foråret kursus med fokus på det grundlæggende i Spring 5 og Spring Boot 2:

>> KONTROLLER KURSEN

1. Oversigt

I denne korte vejledning introducerer vi nøgleværktøj kommando. Vi lærer at bruge nøgleværktøj for at oprette et nyt certifikat og kontrollere oplysningerne for det certifikat.

2. Hvad er? nøgleværktøj?

Java inkluderer nøgleværktøj værktøj i sine udgivelser. Vi bruger det til styre nøgler og certifikater og opbevar dem i en nøglelager. Det nøgleværktøj kommando giver os mulighed for at oprette selvsignerede certifikater og vise oplysninger om keystore.

I de følgende sektioner vil vi gennemgå forskellige funktioner i dette værktøj.

3. Oprettelse af et selvunderskrevet certifikat

Lad os først og fremmest oprette et selvsigneret certifikat, der f.eks. Kan bruges til at etablere sikker kommunikation mellem projekter i vores udviklingsmiljø.

For at generere certifikatet, vi åbner en kommandolinjeprompt og bruger nøgleværktøj kommando med -genkeypair mulighed:

keytool -genkeypair -alias -keypass -validity -storepass 

Lad os lære mere om hver af disse parametre:

  • alias - navnet på vores certifikat
  • tastatur - certifikatets adgangskode. Vi har brug for denne adgangskode for at få adgang til den private nøgle i vores certifikat
  • gyldighed - tidspunktet (i dage) for gyldigheden af ​​vores certifikat
  • lagerplads - adgangskoden til nøglelageret. Dette vil være adgangskoden til keystore, hvis butikken ikke findes

Lad os f.eks. Generere et certifikat med navnet “Cert1” der har en privat nøgle på “Pass123” og er gyldigt i et år. Vi specificerer også “Stpass123” som adgangskode til nøglelager:

keytool -genkeypair -alias cert1 -keypass pass123 -gyldighed 365 -storepass stpass123

Efter udførelse af kommandoen beder den om nogle oplysninger, som vi skal give:

Hvad er dit for- og efternavn? [Ukendt]: Navn Hvad hedder din organisationsenhed? [Ukendt]: Enhed Hvad hedder din organisation? [Ukendt]: Virksomhed Hvad hedder din by eller lokalitet? [Ukendt]: By Hvad hedder din stat eller provins? [Ukendt]: Angiv hvad er landekoden på to bogstaver for denne enhed? [Ukendt]: USA Er CN = navn, OU = enhed, O = firma, L = by, ST = stat, C = USA korrekt? [Nej Ja

Som nævnt, hvis vi ikke har oprettet keystore før, opretter dette certifikat det automatisk.

Vi kunne også udføre -genkeypair mulighed uden parametre. Hvis vi ikke angiver dem på kommandolinjen, og de er obligatoriske, bliver vi bedt om dem.

Bemærk, at det generelt anbefales at ikke angive adgangskoderne (-keypass eller -forløb) på kommandolinjen i produktionsmiljøer.

4. Notering af certifikater i Keystore

Dernæst skal vi lære at gøre det se certifikaterne der er gemt i vores keystore. Til dette formål bruger vi -liste mulighed:

keytool -list -storepass 

Outputtet til den udførte kommando viser det certifikat, vi har oprettet:

Keystore-type: JKS Keystore-udbyder: SUN Din keystore indeholder 1 post cert1, 02-ago-2020, PrivateKeyEntry, Certificate fingerprint (SHA1): 0B: 3F: 98: 2E: A4: F7: 33: 6E: C4: 2E: 29 : 72: A7: 17: E0: F5: 22: 45: 08: 2F

Hvis vi ønsker at få information til et konkret certifikat, vi skal bare medtage -alias mulighed for vores kommando. For at få yderligere oplysninger end leveret som standard tilføjer vi også -v (detaljeret) mulighed:

keytool -list -v -alias -storepass 

Dette giver os alle de oplysninger, der er relateret til det anmodede certifikat:

Aliasnavn: cert1 Oprettelsesdato: 02-ago-2020 Indgangstype: PrivateKeyEntry Certifikatkædelængde: 1 Certifikat [1]: Ejer: CN = Navn, OU = Enhed, O = Virksomhed, L = By, ST = Stat, C = Amerikansk udsteder: CN = Navn, OU = Enhed, O = Virksomhed, L = By, ST = Stat, C = US Serienummer: 11d34890 Gyldig fra: sø aug 02 20:25:14 CEST 2020 indtil: mand aug 02 20: 25:14 CEST 2021 Certifikatfingeraftryk: MD5: 16: F8: 9B: DF: 2C: 2F: 31: F0: 85: 9C: 70: C3: 56: 66: 59: 46 SHA1: 0B: 3F: 98: 2E : A4: F7: 33: 6E: C4: 2E: 29: 72: A7: 17: E0: F5: 22: 45: 08: 2F SHA256: 8C: B0: 39: 9F: A4: 43: E2: D1: 57: 4A: 6A: 97: E9: B1: 51: 38: 82: 0F: 07: F6: 9E: CE: A9: AB: 2E: 92: 52: 7A: 7E: 98: 2D: CA Signaturalgoritmnavn : SHA256withDSA Algoritme for emne offentlig nøgle: 2048-bit DSA-nøgle Version: 3 Udvidelser: # 1: ObjectId: 2.5.29.14 Kritisk = falsk SubjectKeyIdentifier [KeyIdentifier [0000: A1 3E DD 9A FB C0 9F 5D B5 BE 2E EC E2 87 CD 45 .> .....] ....... E 0010: FE 0B D7 55 ... U]]

5. Andre funktioner

Bortset fra de funktioner, vi allerede har set, er der mange ekstra funktioner tilgængelige i dette værktøj.

For eksempel kan vi slet certifikatet vi oprettede fra keystore:

keytool-slet -alias -storepass 

Et andet eksempel er, at vi endda vil være i stand til det ændre et certifikats alias:

keytool -changealias -alias -destalias -keypass -storepass 

Endelig kan vi få mere information om værktøjet bede om hjælp gennem kommandolinjen:

nøgleværktøj -hjælp

6. Konklusion

I denne hurtige vejledning har vi lært lidt om nøgleværktøj hjælpeprogram. Vi har også lært at bruge nogle grundlæggende funktioner, der er inkluderet i dette værktøj.

Java bund

Jeg har lige annonceret det nye Lær foråret kursus med fokus på det grundlæggende i Spring 5 og Spring Boot 2:

>> KONTROLLER KURSEN