Introductie tot keytool

Java Top

Ik heb zojuist het nieuwe aangekondigd Leer de lente natuurlijk, gericht op de basisprincipes van Spring 5 en Spring Boot 2:

>> BEKIJK DE CURSUS

1. Overzicht

In deze korte tutorial introduceren we de belangrijk hulpmiddel opdracht. We zullen leren hoe u belangrijk hulpmiddel om een ​​nieuw certificaat aan te maken en de informatie voor dat certificaat te controleren.

2. Wat is belangrijk hulpmiddel?

Java bevat de belangrijk hulpmiddel hulpprogramma in zijn releases. We gebruiken het voor beheren sleutels en certificaten en bewaar ze in een keystore. De belangrijk hulpmiddel commando stelt ons in staat om zelfondertekende certificaten te creëren en informatie over de keystore te tonen.

In de volgende secties zullen we verschillende functionaliteiten van dit hulpprogramma doornemen.

3. Een zelfondertekend certificaat maken

Laten we allereerst een zelfondertekend certificaat maken dat kan worden gebruikt om bijvoorbeeld veilige communicatie tussen projecten in onze ontwikkelomgeving tot stand te brengen.

Om zo te genereer het certificaat, gaan we een opdrachtregelprompt openen en gebruiken belangrijk hulpmiddel commando met de -geneypaar keuze:

keytool -genkeypair -alias -keypass -validity -storepass 

Laten we meer leren over elk van deze parameters:

  • alias - de naam van ons certificaat
  • sleutelpas - het wachtwoord van het certificaat. We hebben dit wachtwoord nodig om toegang te krijgen tot de privésleutel van ons certificaat
  • Geldigheid - het tijdstip (in dagen) van de geldigheid van ons certificaat
  • storepass - het wachtwoord voor de keystore. Dit is het wachtwoord van de keystore als de store niet bestaat

Laten we bijvoorbeeld een certificaat genereren met de naam "Cert1" die een privésleutel heeft van "Pass123" en is één jaar geldig. We zullen ook specificeren "Stpass123" als het keystore-wachtwoord:

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

Na het uitvoeren van de opdracht, zal het om wat informatie vragen die we nodig hebben:

Wat is uw voor- en achternaam? [Onbekend]: naam Wat is de naam van uw organisatie-eenheid? [Unknown]: Unit Wat is de naam van uw organisatie? [Onbekend]: Bedrijf Wat is de naam van uw stad of plaats? [Onbekend]: Stad Wat is de naam van uw staat of provincie? [Onbekend]: Staat Wat is de landcode van twee letters voor dit toestel? [Onbekend]: VS is CN = naam, OU = eenheid, O = bedrijf, L = stad, ST = staat, C = VS correct? [Nee ja

Zoals gezegd, als we de keystore nog niet eerder hebben gemaakt, wordt deze automatisch aangemaakt door dit certificaat aan te maken.

We kunnen ook het -geneypaar optie zonder parameters. Als we ze niet op de opdrachtregel opgeven en ze verplicht zijn, worden we erom gevraagd.

Merk op dat het over het algemeen wordt aangeraden om de wachtwoorden (-sleutelpas of -storepass) op de opdrachtregel in productieomgevingen.

4. Certificaten in de Keystore vermelden

Vervolgens gaan we leren hoe dat moet bekijk de certificaten die zijn opgeslagen in onze keystore. Voor dit doel gebruiken we de -lijst keuze:

keytool -list -storepass 

De uitvoer voor de uitgevoerde opdracht toont het certificaat dat we hebben gemaakt:

Keystore type: JKS Keystore provider: SUN Uw keystore bevat 1 entry 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

Als we het informatie voor een concreet certificaat, we hoeven alleen de -alias optie op ons bevel. Om meer informatie te krijgen dan standaard wordt verstrekt, voegen we ook het -v (uitgebreide) optie:

keytool -list -v -alias -storepass 

Dit geeft ons alle informatie met betrekking tot het aangevraagde certificaat:

Aliasnaam: cert1 Aanmaakdatum: 02-ago-2020 Invoertype: PrivateKeyEntry Lengte certificaatketen: 1 Certificaat [1]: Eigenaar: CN = Naam, OU = Eenheid, O = Bedrijf, L = Stad, ST = Staat, C = US Issuer: CN = Name, OU = Unit, O = Company, L = City, ST = State, C = US Serienummer: 11d34890 Geldig vanaf: Sun Aug 02 20:25:14 CEST 2020 tot: Mon Aug 02 20: 25:14 CEST 2021 Vingerafdrukken certificaat: 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 Naam handtekeningalgoritme : SHA256withDSA Algoritme voor openbare sleutel van onderwerp: 2048-bit DSA-sleutel Versie: 3 Extensies: # 1: ObjectId: 2.5.29.14 Criticality = false SubjectKeyIdentifier [KeyIdentifier [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. Andere kenmerken

Afgezien van de functionaliteiten die we al hebben gezien, zijn er veel extra functies beschikbaar in deze tool.

We kunnen bijvoorbeeld verwijder het certificaat we hebben gemaakt vanuit de keystore:

keytool -verwijderen -alias -storepass 

Een ander voorbeeld is dat we het zelfs zullen kunnen verander de alias van een certificaat:

keytool -changealias -alias -destalias -keypass -storepass 

Tot slot, om meer informatie over de tool te krijgen, kunnen we vraag om hulp via de opdrachtregel:

keytool -help

6. Conclusie

In deze korte tutorial hebben we een beetje geleerd over de belangrijk hulpmiddel nut. We hebben ook geleerd om enkele basisfuncties van deze tool te gebruiken.

Java onderkant

Ik heb zojuist het nieuwe aangekondigd Leer de lente natuurlijk, gericht op de basisprincipes van Spring 5 en Spring Boot 2:

>> BEKIJK DE CURSUS