17 przykładów poleceń narzędzia Keytool, które warto poznać jako administrator systemu i programista

Keytool to narzędzie wiersza poleceń, które umożliwia zarządzanie/przechowywanie kluczy kryptograficznych i certyfikatów.

Jeśli Twój system ma zainstalowaną Javę, możesz użyć polecenia keytool, aby zaimportować certyfikat CA, wyświetlić listę certyfikatów, utworzyć certyfikaty z podpisem własnym, przechowywać hasła i klucze publiczne/prywatne oraz wykonać wiele innych czynności.

Zdezorientowany? Nie denerwować; Wyjaśnię to w prostszy sposób podczas czytania.

Zauważ, że używam Linuksa do testowania poleceń i wyjaśniam ci trochę więcej na ten temat z przykładami.

Możesz także używać poleceń Keytool w systemach Windows i macOS.

Co to jest polecenie Keytool?

Jest to narzędzie do zarządzania kluczami i certyfikatami. Pozwala przechowywać pary kluczy prywatny/publiczny, które zazwyczaj służą do weryfikacji/uwierzytelnienia dostępu do usług.

Biorąc pod uwagę tytuł tego artykułu, można przypuszczać, że polecenie jest używane głównie przez administratorów systemu i programistów.

W większości tak, ale użytkownik może wykazać się kreatywnością za pomocą polecenia keytool do przechowywania haseł i tajnych kluczy do celów uwierzytelniania, szyfrowania i deszyfrowania. Tak więc, jeśli jesteś ciekawy, powinieneś wypróbować go w swoim systemie.

Jeśli koncepcja kluczy kryptograficznych jest dla Ciebie nowicjuszem, przed wypróbowaniem poleceń keytool warto zapoznać się z naszym artykułem na temat szyfrowania danych.

Co więcej, sprawdzenie przykładów poleceń OpenSSL może również dać ci wyobrażenie o tym, czym się różni i co możesz z nimi zrobić.

Utwórz certyfikat z podpisem własnym

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

W przeciwieństwie do kupowanego certyfikatu SSL, certyfikat z podpisem własnym jest używany wyłącznie do celów programistycznych/testowych w celu korzystania z bezpiecznego połączenia.

Możesz go wygenerować, używając wspomnianej powyżej składni polecenia keytool. Na przykład tak to wygląda:

keytool -genkeypair -alias newsblog.pl -keypass passforkeystore -validity 365 -storepass passforkeystore

Możesz użyć dowolnej nazwy dla aliasu; Używam newsblog.pl jako tekstu zastępczego. Możesz dostosować ważność i określić hasło do magazynu kluczy, zastępując „passforkeystore” w powyższym poleceniu.

Należy pamiętać, że dla magazynów kluczy PKCS12 obsługiwane jest tylko jedno hasło. Jest to jednak wygodny typ magazynu kluczy, który nie jest specyficzny dla języka Java.

Jeśli potrzebujesz dwóch różnych haseł do magazynu kluczy i certyfikatu, możesz wyraźnie powiedzieć komendzie keytool, aby używała innego interfejsu.

Możesz przeczytać więcej na ten temat w oficjalnej dokumentacji.

Gdy będziesz kontynuować tworzenie, poprosi o dodatkowe szczegóły dotyczące autentyczności. Oto jak powinien wyglądać:

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

Utwórz magazyn kluczy Java i parę kluczy

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

Wygeneruj magazyn kluczy Java i zaimportuj certyfikat

Upewnij się, że posiadasz ważny certyfikat lub wygenerowałeś go wcześniej; po zakończeniu możesz go zaimportować i wygenerować magazyn kluczy Java.

keytool -importcert -file test.crt -keystore truststore.jks -alias newsblog.pl

Wygeneruj parę kluczy do domyślnego magazynu kluczy z tematem

Możesz szybko wygenerować parę kluczy (powiedzmy o nazwie „ca”) za pomocą następującego polecenia:

keytool -alias ca -dname CN=CA -genkeypair

Utwórz łańcuch podpisanych certyfikatów

Załóżmy, że utworzyłeś pary kluczy ca i ca1. Możesz utworzyć łańcuch podpisanych certyfikatów, w których ca podpisze ca1 za pomocą następujących poleceń:

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

Możesz uzupełnić łańcuch o dwie kolejne pary kluczy ca1 i ca2, gdzie ca1 podpisze ca2.

Importowanie certyfikatu

Jeśli chcesz zaimportować certyfikat z dostępnego pliku, możesz wykonać następujące czynności:

keystool -import -alias newsblog.pl -file geekflareserver.cer

Utwórz żądanie podpisania certyfikatu (CSR) dla istniejącego magazynu kluczy

Biorąc pod uwagę, że magazyn kluczy został już utworzony, możesz wygenerować CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file newsblog.pl.csr

Wyświetl listę certyfikatów przechowywanych w magazynie kluczy Java

Magazyn kluczy może zawierać wiele wpisów certyfikatów. Zakładając, że sprawdzamy listę certyfikatów w bazie „keystore.jks”, oto co musimy wpisać:

keytool -v -list -keystore keystore.jks

Dane wyjściowe dla tego będą wyglądać następująco:

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

Sprawdź zawartość pojedynczego certyfikatu

Biorąc pod uwagę, że masz już wygenerowany certyfikat, możesz sprawdzić więcej informacji na ten temat, korzystając z następujących opcji:

keytool -v -printcert -file server.crt

Wyświetl certyfikaty w magazynie kluczy Java

Możesz wyświetlić listę wszystkich certyfikatów z bazy danych magazynu kluczy. Oto jak wygląda polecenie:

keytool -v -list -keystore keystore.jks

Wyświetl magazyn kluczy przy użyciu aliasu i magazynu kluczy

Jeśli chcesz sprawdzić magazyn kluczy przy użyciu aliasu ustawionego podczas jego tworzenia, wpisz następujące polecenie:

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

Wyświetl listę certyfikatów w KeyStore

Jeśli chcesz sprawdzić certyfikaty przechowywane w domyślnym magazynie kluczy, użyj polecenia:

keytool -list -storepass passforkeystore

Musisz zastąpić „passforkeystore” ustawionym hasłem.

Wyświetl informacje o certyfikacie

Jeśli chcesz sprawdzić szczegóły pojedynczego certyfikatu, możesz użyć jego aliasu bez określania bazy danych keystone.

Oto jak to wygląda:

keytool -list -v -alias newsblog.pl -storepass passforkeystore

Zobacz certyfikat w formacie PEM

PEM to jeden z najpopularniejszych formatów certyfikatów i kluczy kryptograficznych. Jeśli chcesz sprawdzić certyfikat za pomocą PEM, wpisz:

keytool -v -printcert -file newsblog.pl.crt -rfc

Zmień hasło magazynu kluczy Java

Jeśli masz już utworzone hasło do magazynu kluczy Java, możesz zmienić hasło za pomocą polecenia:

keytool -delete -alias newsblog.pl -keystore keystore.jks

Usuń certyfikat z magazynu kluczy Java

Możesz określić magazyn kluczy Java i jego alias, aby go usunąć. Na przykład:

keytool -delete -alias newsblog.pl -keystore keystore.jks

Zapoznaj się z poleceniem i uzyskaj pomoc

Polecenie ma kilka argumentów i rozszerzeń, aby wykonać wiele rzeczy. W zależności od przypadku użycia, możesz lub nie musisz używać ich wszystkich.

Tak więc, jeśli chcesz zagłębić się w opcje poleceń, zawsze możesz wpisać:

keytool -help

W obu przypadkach, jeśli używasz terminala Linux, polecam przeczytanie strony man (podręcznika) za pomocą tego polecenia:

man keytool

Za pomocą polecenia man możesz uzyskać wszystkie potrzebne szczegóły dotyczące polecenia keytool.

Zachowaj więc swoją supermoc, aby dowiedzieć się o niej wszystkiego, co możesz!

Podsumowanie

Ścieżka plików i inne opcje dostosowywania mogą się nieco różnić od używanej platformy. Możesz również zapoznać się z dokumentacją Oracle dotyczącą standardowych opcji.

Keytool to doskonałe narzędzie do szeregu zadań. Przetestuj go i zobacz, co możesz z nim zrobić!

Możesz także zapoznać się z niektórymi poleceniami systemu Linux, aby utrzymać i zapewnić optymalne działanie systemów.