Keytool-Befehle
Wenn Sie die Keytool-Befehle in diesem Thema verwenden, stellen Sie sicher, dass Sie die unter Voraussetzungen für Keytool und Jarsigner beschriebenen Befehls-Flags verwenden.
Schlüsselpaar generieren
Verwenden Sie das Flag -genkeypair, um 1 Private Key und 1 Public Key im DKMS HSM mit Keytool mit JCE zu generieren. Durch diesen Vorgang wird der Schlüssel auch im lokalen Keystore gespeichert.
Wichtig: Wenn Sie mit dem Befehl keytool ein Schlüsselpaar generieren oder einen vorhandenen Keystore importieren, stellt die Java-Sicherheitskonfiguration sicher, dass ein öffentlicher und ein privater Schlüssel in der HSM-Karte generiert werden. Wenn Sie die Datei java.security für diese Konfiguration verwenden, muss der OCI Dedicated KMS-Provider als Priorität 2 in der Datei angegeben werden, damit Schlüsselpaare im HSM generiert werden können.
Alternativ erstellen Sie im aktuellen Verzeichnis eine Java Security Override File, und fügen Sie den OCI Dedicated KMS-Provider an der zweiten Position als security.provider.2 hinzu. Verwenden Sie beim Ausführen eines Keytool-Befehls die folgende Option, um die Java Security Override-Datei anzugeben:
-J-Djava.security.properties=<java_security_override_file>
Weitere Informationen zur Konfiguration von Java Security finden Sie unter JCE-Provider zu Java Security hinzufügen.
Das generierte Schlüsselpaar kann nicht mit einem Alias im Schlüsselverwaltungsutility gefunden werden. Optional können Sie Schlüssel vor und nach der Schlüsselgenerierung auflisten, um den neuen Schlüssel im HSM zu identifizieren. Auf diese Weise können Sie den Schlüssel im HSM einfach löschen, wenn Sie dies benötigen. Bevor Sie ein Schlüsselpaar erstellen, melden Sie sich beim HSM an, und erstellen Sie eine Liste der vorhandenen Handles. Erstellen Sie anschließend eine Liste, nachdem Sie das Schlüsselpaar erstellt haben, um das Handle des neuen Schlüsselpaares zu suchen. Anweisungen finden Sie unter Handle eines neuen Schlüsselpaars oder Secret Keys im HSM identifizieren.
Syntax:
keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-genkeypair -alias <example-alias> -keyalg <algorithm> -keysize <key-size> -sigalg <signature-algorithm> \
-dname <example-distinguished-name> \
-keypass <example-password> -keystore <local-keystore-name> -storepass <example-password> -storetype DKKS
-J-Djava.security.properties=<java_security_override_file>
Secret Key generieren
Verwenden Sie das Flag -genseckey im Key Management Utility mit JCE , um diesen Vorgang auszuführen. Dieser Vorgang generiert 1 Secret Key im HSM.
Der Secret Key kann mit einem Alias im Key Management Utility nicht gefunden werden. Melden Sie sich vor dem Erstellen eines Secret Keys beim HSM an, und erstellen Sie eine Liste der vorhandenen Handles. Sie können diese Liste verwenden, nachdem Sie das Schlüsselpaar erstellt haben, um das Handle des neuen Secret Keys zu suchen. Anweisungen finden Sie unter Handle eines neuen Schlüsselpaars oder Secret Keys im HSM identifizieren.
Syntax:
keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-genseckey -alias <example-alias> -keyalg <algorithm> -keysize <key-size> \
-keypass <example-password> -keystore <local-keystore-name> -storepass <example-password> -storetype DKKS
Identifizieren des Handle eines neuen Schlüsselpaars oder Secret Keys im HSM
Neue Schlüsselpaare oder Secret Keys, die im HSM erstellt wurden, können nicht mit einem Alias im Key Management Utility gefunden werden. Sie können das Handle eines neuen Schlüsselpaares oder Secret Keys finden, indem Sie eine Liste aller Handles vergleichen, bevor ein Schlüsselpaar oder Secret Key mit einer zweiten Liste aller Handles generiert wird, die nach der Generierung eines Schlüsselpaares oder Secret Keys erstellt wurden. Der Unterschied zwischen den beiden Listen zeigt das neu erstellte Handle für das Schlüsselpaar oder den Secret Key an.
- Melden Sie sich mit dem Schlüsselverwaltungsutility beim HSM an.
-
Führen Sie den folgenden Befehl aus, um eine Liste der vorhandenen Handles zu suchen und zu speichern:
findKey -c <key-type>Gültige Werte für <key-type> sind: 2 = öffentlich 3 = privat 4 = geheim. Weitere Informationen finden Sie unter Single Key suchen.
- Generieren Sie ein Schlüsselpaar oder einen Secret Key. Anweisungen finden Sie unter Schlüsselpaar generieren und Secret Key generieren.
- Wiederholen Sie die Schritte 1 und 2, und verwenden Sie den Befehl
findKey -c 4, um eine Liste der Handles im HSM zu suchen und zu speichern. Die neue Liste enthält das Handle für das neu generierte Schlüsselpaar oder den Secret Key. - Führen Sie einen Diff-Vorgang für die beiden Listen aus, um ein neues Handle zu suchen.
Schlüssel löschen
Verwenden Sie die Anweisungen im folgenden erweiterbaren Abschnitt, um Schlüssel aus dem lokalen Keystore und dem HSM zu löschen.
-
Führen Sie den folgenden Keytool-Befehl aus, um den Schlüssel im lokalen Keystore zu löschen:
keytool \ -J-cp -J<dedicated_kms_jce_jar_path> \ -delete -alias <example-alias> \ -keypass <example-password> -keystore <example-keystore-name> -storepass <example-password> -storetype DKKS -
Um einen Schlüssel im HSM zu löschen, führen Sie den folgenden Befehl im Utility Dedicated Key Management aus:
deleteKey -k <key-handle>Weitere Informationen finden Sie unter Schlüssel löschen:
Certificate Signing Request (CSR) mit Keytool generieren
Verwenden Sie das Flag -certreq, um eine Certificate Signing Request (CSR) mit einem Schlüssel im HSM zu generieren. Der Befehl wird mit dem Utility keytool mit JCE ausgeführt.
Führen Sie den folgenden Befehl aus, um eine CSR mit einem Schlüssel im HSM zu generieren:
keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-certreq \
-alias <example-alias> \
-file <csr-file> \
-keyalg -keyalg <algorithm> -keysize <key-size> -sigalg <signature-algorithm> \
-dname <example-distinguished-name> \
-keypass <example-password> -keystore <local-keystore-name> -storepass <example-password> -storetype DKKSZertifikate in einen Keystore importieren
Verwenden Sie das Flag -importcert, um ein Zertifikat in den lokalen Keystore zu importieren. Der Befehl wird mit dem Keytool mit JCE ausgeführt.
Syntax:
keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-importcert -noprompt \
-alias <example-alias> \
-file <crt-file> \
-keypass <example-password> -keystore <local-keystore-name> -storepass <example-password>
Java Keystore in HSM importieren
Verwenden Sie das Flag -importkeystore, um alle Schlüssel in einem Keystore in das HSM zu importieren. Der Befehl wird mit Keytool mit JCE ausgeführt.
Wichtig:
-
Wenn Sie mit dem Befehl
keytoolein Schlüsselpaar generieren oder einen vorhandenen Keystore importieren, stellt die Java-Sicherheitskonfiguration sicher, dass ein öffentlicher und privater Schlüssel in der HSM-Karte generiert wird. Wenn Sie die Dateijava.securityfür diese Konfiguration verwenden, muss der OCI Dedicated KMS-Provider als Priorität 2 in der Datei angegeben werden, damit Schlüsselpaare im HSM generiert werden können.Alternativ erstellen Sie im aktuellen Verzeichnis eine Java Security Override File, und fügen Sie den OCI Dedicated KMS-Provider an der zweiten Position als
security.provider.2hinzu. Verwenden Sie bei der Ausführung eines Keytool-Befehls die folgende Option, um die Java Security Override-Datei anzugeben:-J-Djava.security.properties=<java_security_override_file>Weitere Informationen zur Konfiguration von Java Security finden Sie unter JCE-Provider zu Java Security hinzufügen.
- Wenn Sie einen Keystore mit 2 oder mehr Schlüsseln in das HSM importieren, können Sie das Handle der Schlüssel nicht mit der unter Identifying the Handle of a New Key Pair or Secret Key in the HSM beschriebenen Methode identifizieren. Außerdem können Sie die Schlüssel in dem Key Management Utility nicht mit einem Alias referenzieren.
Syntax:
keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-J-Djava.security.properties=<java_security_override_file> \
-importkeystore \
-srckeystore <example-source-keystore> - srcstoretype <example-source-keystore-type> -srcstorepass <example-source-keystore-password> \
-destkeystore <example-destination-keystore> -deststoretype DKKS - deststorepass <example-destination-keystore-password> \
Keystore initialisieren
Wenn kein leerer initialisierter Keystore vorhanden ist, können Sie einen Keystore erstellen, indem Sie die folgenden Vorgänge ausführen:
-
Das Keytool-Programm kann keinen leeren DKKS-Keystore erstellen. Sie können Keytool jedoch verwenden, um einen Keystore im Rahmen eines Schlüsselgenerierungsvorgangs zu erstellen. Nachdem Sie einen Schlüssel mit Keytool generiert haben, können Sie den Schlüssel löschen, und der initialisierte Keystore bleibt für Sie verfügbar.
Verwenden Sie die Anweisungen unter Schlüsselpaar generieren und Handle eines neuen Schlüsselpaars oder Secret Keys im HSM identifizieren, um ein Schlüsselpaar zu generieren, das durch ein Handle identifiziert werden kann. Wenn Sie dieses Schlüsselpaar generieren, erstellt das Keytool-Utility einen initialisierten Keystore, den Sie für zukünftige Vorgänge verwenden können.
- Löschen Sie das nicht erforderliche Schlüsselpaar aus dem HSM anhand der Anweisungen unter Schlüssel löschen.