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.