Einführung in Keytool

Java Top

Ich habe gerade den neuen Learn Spring- Kurs angekündigt , der sich auf die Grundlagen von Spring 5 und Spring Boot 2 konzentriert:

>> Überprüfen Sie den Kurs

1. Übersicht

In diesem kurzen Tutorial stellen wir den Befehl keytool vor . Wir werden lernen, wie Sie mit keytool ein neues Zertifikat erstellen und die Informationen für dieses Zertifikat überprüfen.

2. Was ist Keytool?

Java enthält das Dienstprogramm keytool in seinen Versionen. Wir verwenden es, um Schlüssel und Zertifikate zu verwalten und in einem Schlüsselspeicher zu speichern. Mit dem Befehl keytool können wir selbstsignierte Zertifikate erstellen und Informationen zum Keystore anzeigen.

In den folgenden Abschnitten werden wir verschiedene Funktionen dieses Dienstprogramms durchgehen.

3. Erstellen eines selbstsignierten Zertifikats

Lassen Sie uns zunächst ein selbstsigniertes Zertifikat erstellen, mit dem beispielsweise eine sichere Kommunikation zwischen Projekten in unserer Entwicklungsumgebung hergestellt werden kann.

Um das Zertifikat zu generieren , öffnen wir eine Eingabeaufforderung und verwenden den Befehl keytool mit der Option -genkeypair :

keytool -genkeypair -alias  -keypass  -validity  -storepass 

Erfahren Sie mehr über jeden dieser Parameter:

  • Alias - der Name für unser Zertifikat
  • Tastatur - das Passwort des Zertifikats. Wir benötigen dieses Passwort, um auf den privaten Schlüssel unseres Zertifikats zugreifen zu können
  • Gültigkeit - der Zeitpunkt (in Tagen) der Gültigkeit unseres Zertifikats
  • storepass - das Passwort für den Keystore. Dies ist das Kennwort des Schlüsselspeichers, wenn der Speicher nicht vorhanden ist

Lassen Sie uns beispielsweise ein Zertifikat mit dem Namen "cert1" generieren , das den privaten Schlüssel "pass123" hat und ein Jahr lang gültig ist. Wir werden auch "stpass123" als Keystore-Passwort angeben :

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

Nach dem Ausführen des Befehls werden einige Informationen abgefragt, die wir bereitstellen müssen:

What is your first and last name? [Unknown]: Name What is the name of your organizational unit? [Unknown]: Unit What is the name of your organization? [Unknown]: Company What is the name of your City or Locality? [Unknown]: City What is the name of your State or Province? [Unknown]: State What is the two-letter country code for this unit? [Unknown]: US Is CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US correct? [no]: yes

Wie bereits erwähnt, wird der Schlüsselspeicher automatisch erstellt, wenn wir ihn noch nicht erstellt haben.

Wir könnten die Option -genkeypair auch ohne Parameter ausführen . Wenn wir sie nicht in der Befehlszeile angeben und sie obligatorisch sind, werden wir dazu aufgefordert.

Beachten Sie, dass es in Produktionsumgebungen generell empfohlen wird, die Kennwörter ( -keypass oder -storepass ) nicht in der Befehlszeile anzugeben .

4. Auflisten von Zertifikaten im Keystore

Als Nächstes erfahren Sie, wie Sie die in unserem Keystore gespeicherten Zertifikate anzeigen. Zu diesem Zweck verwenden wir die Option -list :

keytool -list -storepass  

Die Ausgabe für den ausgeführten Befehl zeigt das von uns erstellte Zertifikat an:

Keystore type: JKS Keystore provider: SUN Your keystore contains 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

Wenn wir die Informationen für ein konkretes Zertifikat erhalten möchten , müssen wir nur die Option -alias in unseren Befehl aufnehmen. Um weitere Informationen als standardmäßig angegeben zu erhalten, fügen wir außerdem die Option -v (ausführlich) hinzu:

keytool -list -v -alias  -storepass  

Dadurch erhalten wir alle Informationen zum angeforderten Zertifikat:

Alias name: cert1 Creation date: 02-ago-2020 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US Issuer: CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US Serial number: 11d34890 Valid from: Sun Aug 02 20:25:14 CEST 2020 until: Mon Aug 02 20:25:14 CEST 2021 Certificate fingerprints: 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 Signature algorithm name: SHA256withDSA Subject Public Key Algorithm: 2048-bit DSA key Version: 3 Extensions: #1: ObjectId: 2.5.29.14 Criticality=false 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. Weitere Funktionen

Abgesehen von den Funktionen, die wir bereits gesehen haben, stehen in diesem Tool viele zusätzliche Funktionen zur Verfügung.

Beispielsweise können wir das von uns erstellte Zertifikat aus dem Keystore löschen :

keytool -delete -alias  -storepass 

Ein weiteres Beispiel ist, dass wir sogar den Alias ​​eines Zertifikats ändern können :

keytool -changealias -alias  -destalias  -keypass  -storepass 

Um weitere Informationen über das Tool zu erhalten, können wir über die Befehlszeile um Hilfe bitten :

keytool -help

6. Fazit

In diesem kurzen Tutorial haben wir etwas über das Dienstprogramm keytool gelernt . Wir haben auch gelernt, einige grundlegende Funktionen dieses Tools zu verwenden.

Java unten

Ich habe gerade den neuen Learn Spring- Kurs angekündigt , der sich auf die Grundlagen von Spring 5 und Spring Boot 2 konzentriert:

>> Überprüfen Sie den Kurs