17 Keytool-Befehlsbeispiele, die Sie als Sysadmin und Entwickler kennen sollten

Keytool ist ein Befehlszeilendienstprogramm, mit dem Sie kryptografische Schlüssel und Zertifikate verwalten/speichern können.

Wenn auf Ihrem System Java installiert ist, können Sie den keytool-Befehl verwenden, um ein CA-Zertifikat zu importieren, Zertifikate aufzulisten, selbstsignierte Zertifikate zu erstellen, Passphrasen und öffentliche/private Schlüssel zu speichern und vieles mehr.

Verwirrt? Ärgern Sie sich nicht; Ich werde es in einfacheren Worten erklären, während Sie lesen.

Beachten Sie, dass ich Linux verwende, um die Befehle zu testen und Ihnen anhand von Beispielen etwas mehr darüber zu erklären.

Sie können Keytool-Befehle auch unter Windows und macOS verwenden.

Was ist ein Keytool-Befehl?

Es ist ein Dienstprogramm zur Verwaltung von Schlüsseln und Zertifikaten. Es ermöglicht Ihnen, private/öffentliche Schlüsselpaare zu speichern, die normalerweise dazu dienen, den Zugriff auf Dienste zu verifizieren/authentifizieren.

In Anbetracht des Titels dieses Artikels kann man davon ausgehen, dass der Befehl hauptsächlich von Systemadministratoren und Entwicklern verwendet wird.

Zum größten Teil ja, aber ein Benutzer kann mit dem keytool-Befehl kreativ werden, um Passphrasen und geheime Schlüssel für Authentifizierungs-, Verschlüsselungs- und Entschlüsselungszwecke zu speichern. Wenn Sie also neugierig sind, sollten Sie es auf Ihrem System ausprobieren.

Wenn Ihnen das Konzept kryptografischer Schlüssel neu ist, sollten Sie sich unseren Artikel zur Datenverschlüsselung ansehen, bevor Sie keytool-Befehle ausprobieren.

Darüber hinaus können Sie sich anhand der OpenSSL-Befehlsbeispiele eine Vorstellung davon machen, wie es anders ist und was Sie mit jedem davon tun können.

Erstellen Sie ein selbstsigniertes Zertifikat

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

Im Gegensatz zu einem SSL-Zertifikat, das Sie kaufen, wird ein selbstsigniertes Zertifikat nur zu Entwicklungs-/Testzwecken verwendet, um eine sichere Verbindung zu verwenden.

Sie können einen mit der oben erwähnten Keytool-Befehlssyntax generieren. So sieht es beispielsweise aus:

keytool -genkeypair -alias wdzwdz -keypass passforkeystore -validity 365 -storepass passforkeystore

Sie können einen beliebigen Namen für den Alias ​​verwenden; Als Platzhaltertext verwende ich wdzwdz. Sie können die Gültigkeit anpassen und ein Passwort für den Schlüsselspeicher angeben, indem Sie im obigen Befehl „passforkeystore“ ersetzen.

  Stellen Sie professionelle Abzeichen und Zertifikate mit Sertifier wdzwdz aus

Beachten Sie, dass für PKCS12-KeyStores nur ein Kennwort unterstützt wird. Es handelt sich jedoch um einen praktischen Keystore-Typ, der nicht Java-spezifisch ist.

Wenn Sie zwei unterschiedliche Passwörter für Ihren Schlüsselspeicher und das Zertifikat benötigen, sollten Sie dem keytool-Befehl möglicherweise explizit mitteilen, dass er eine andere Schnittstelle verwenden soll.

Sie können mehr darüber in der offiziellen Dokumentation lesen.

Sobald Sie mit der Erstellung fortfahren, werden Sie nach zusätzlichen Details zur Authentizität gefragt. So sollte es aussehen:

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

Erstellen Sie einen Java-Keystore und ein Schlüsselpaar

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

Generieren Sie einen Java Keystore und importieren Sie ein Zertifikat

Stellen Sie sicher, dass Sie über ein gültiges Zertifikat verfügen oder zuvor eines erstellt haben; Sobald Sie fertig sind, können Sie es importieren und einen Java Keystore generieren.

keytool -importcert -file test.crt -keystore truststore.jks -alias wdzwdz

Generieren Sie ein Schlüsselpaar für den Standardschlüsselspeicher mit Betreff

Mit dem folgenden Befehl können Sie schnell ein Schlüsselpaar (z. B. mit dem Namen „ca“) generieren:

keytool -alias ca -dname CN=CA -genkeypair

Erstellen Sie eine Kette signierter Zertifikate

Angenommen, Sie haben die Schlüsselpaare ca und ca1 erstellt. Sie können eine Kette signierter Zertifikate erstellen, bei der ca ca1 mit den folgenden Befehlen signiert:

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

Sie können die Kette mit zwei weiteren Schlüsselpaaren ca1 und ca2 vervollständigen, wobei ca1 ca2 signiert.

  So verwenden Sie den Trackpad-Modus auf dem iPhone und iPad, um Text auszuwählen

Importieren eines Zertifikats

Wenn Sie ein Zertifikat aus einer verfügbaren Datei importieren möchten, können Sie Folgendes tun:

keystool -import -alias wdzwdz -file geekflareserver.cer

Erstellen Sie eine Certificate Signing Request (CSR) für den vorhandenen Keystore

Da Sie bereits einen Keystore erstellt haben, können Sie eine CSR generieren.

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

Im Java Keystore gespeicherte Zertifikate auflisten

Ein Keystore kann mehrere Einträge von Zertifikaten haben. Angenommen, wir überprüfen die Liste der Zertifikate in der Datenbank „keystore.jks“, müssen wir Folgendes eingeben:

keytool -v -list -keystore keystore.jks

Die Ausgabe dafür sieht wie folgt aus:

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

Überprüfen Sie den Inhalt eines einzelnen Zertifikats

Da Sie bereits ein generiertes Zertifikat haben, können Sie es wie folgt genauer überprüfen:

keytool -v -printcert -file server.crt

Zertifikate in einem Java Keystore anzeigen

Sie können alle Zertifikate aus einer Keystore-Datenbank auflisten. So sieht der Befehl aus:

keytool -v -list -keystore keystore.jks

Schlüsselspeicher mit Alias ​​und Schlüsselspeicher anzeigen

Wenn Sie einen Schlüsselspeicher anhand seines Aliasnamens überprüfen möchten, den Sie beim Erstellen festgelegt haben, geben Sie Folgendes ein:

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

Zertifikate im Schlüsselspeicher auflisten

Wenn Sie die im Standard-Keystore gespeicherten Zertifikate überprüfen möchten, verwenden Sie den Befehl:

keytool -list -storepass passforkeystore

Sie müssen „passforkeystore“ durch das von Ihnen festgelegte Passwort ersetzen.

  So zeigen Sie die versteckten schwebenden Leistungsfelder des Mac an

Zertifikatinformationen anzeigen

Wenn Sie die Details für ein einzelnes Zertifikat überprüfen müssen, können Sie dessen Alias ​​verwenden, ohne die Keystone-Datenbank anzugeben.

So sieht es aus:

keytool -list -v -alias wdzwdz -storepass passforkeystore

Zertifikat im PEM-Format anzeigen

PEM ist eines der gängigsten Formate für Zertifikate und kryptografische Schlüssel. Wenn Sie ein Zertifikat mit PEM prüfen möchten, geben Sie Folgendes ein:

keytool -v -printcert -file wdzwdz.crt -rfc

Ändern Sie ein Java Keystore-Passwort

Wenn Sie bereits ein Passwort für den Java Keystore erstellt haben, können Sie das Passwort mit dem Befehl ändern:

keytool -delete -alias wdzwdz -keystore keystore.jks

Löschen Sie ein Zertifikat aus dem Java Keystore

Sie können den Java Keystore und seinen Alias ​​angeben, um ihn zu löschen. Zum Beispiel:

keytool -delete -alias wdzwdz -keystore keystore.jks

Entdecken Sie den Befehl und erhalten Sie Hilfe

Der Befehl hat mehrere Argumente und Erweiterungen, um viele Dinge zu erledigen. Abhängig von Ihrem Anwendungsfall müssen Sie möglicherweise alle verwenden oder nicht.

Wenn Sie also tief in die Befehlsoptionen eintauchen möchten, können Sie jederzeit Folgendes eingeben:

keytool -help

Wenn Sie ein Linux-Terminal verwenden, würde ich in jedem Fall empfehlen, die man (Handbuch) Seite mit diesem Befehl zu lesen:

man keytool

Mit dem Befehl man erhalten Sie alle Details, die Sie über den Befehl keytool benötigen.

Behalten Sie es also als Ihre Superkraft, alles darüber zu lernen, was Sie können!

Einpacken

Der Pfad der Dateien und andere Anpassungsoptionen können sich geringfügig von der von Ihnen verwendeten Plattform unterscheiden. Sie können sich auch auf die Dokumentation von Oracle für die standardisierten Optionen beziehen.

Keytool ist ein hervorragendes Werkzeug für eine Reihe von Aufgaben. Probieren Sie es aus und sehen Sie, was Sie damit machen können!

Sie können auch einige Linux-Befehle untersuchen, um die Systeme zu warten und optimal am Laufen zu halten.