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.

So generieren Sie ein Schlüsselpaar

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.

Tipp

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.

So generieren Sie einen Secret Key
Wichtig

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.

So identifizieren Sie das Handle des neuen Schlüssels
  1. Melden Sie sich mit dem Schlüsselverwaltungsutility beim HSM an.
  2. 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.

  3. Generieren Sie ein Schlüsselpaar oder einen Secret Key. Anweisungen finden Sie unter Schlüsselpaar generieren und Secret Key generieren.
  4. 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.
  5. 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.

So löschen Sie einen Schlüssel
  1. 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 
    
  2. 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.

Zur Generierung eines CSR

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 DKKS

Zertifikate 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.

So importieren Sie ein Zertifikat in einen Keystore

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.

So importieren Sie Keystore in das HSM

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 privater Schlüssel in der HSM-Karte generiert wird. 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 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:

  1. 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.

  2. Löschen Sie das nicht erforderliche Schlüsselpaar aus dem HSM anhand der Anweisungen unter Schlüssel löschen.