

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden Sie den AWS CloudHSM Schlüsselspeicher mit Keytool und verwenden Sie das Client SDK 3
<a name="using_keystore_with_keytool"></a>

[ Keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) ist ein beliebtes Befehlszeilenprogramm für allgemeine Schlüssel- und Zertifikataufgaben auf Linux-Systemen. Ein vollständiges Tutorial zu keytool liegt außerhalb des Umfangs der AWS CloudHSM -Dokumentation. In diesem Artikel werden die spezifischen Parameter erläutert, die Sie mit verschiedenen Keytool-Funktionen verwenden sollten, wenn Sie sie über den AWS CloudHSM Schlüsselspeicher AWS CloudHSM als Vertrauensbasis verwenden.

Wenn Sie Keytool mit dem AWS CloudHSM Schlüsselspeicher verwenden, geben Sie die folgenden Argumente für jeden Keytool-Befehl an:

```
-storetype CLOUDHSM \
		-J-classpath '-J/opt/cloudhsm/java/*' \
		-J-Djava.library.path=/opt/cloudhsm/lib
```

Wenn Sie mithilfe des Schlüsselspeichers eine neue Schlüsselspeicherdatei erstellen möchten, finden Sie AWS CloudHSM weitere Informationen unter. [Verwenden Sie das SDK 3 für den Client AWS CloudHSM KeyStore AWS CloudHSM](alternative-keystore.md#using_cloudhsm_keystore) Um einen vorhandenen Schlüsselspeicher zu verwenden, geben Sie seinen Namen (einschließlich Pfad) mit dem Argument -keystore zu keytool an. Wenn Sie in einem Keytool-Befehl eine nicht existierende Schlüsselspeicherdatei angeben, erstellt der AWS CloudHSM Schlüsselspeicher eine neue Schlüsselspeicherdatei.

# Erstellen Sie neue AWS CloudHSM Schlüssel mit Keytool
<a name="create_key_keytool"></a>

Sie können Keytool verwenden, um jede Art von Schlüssel zu generieren, die vom AWS CloudHSM JCE SDK unterstützt werden. Eine vollständige Liste der Schlüssel und Längen finden Sie im Artikel [ Unterstützte Schlüssel](java-lib-supported.md#java-keys) in der Java-Bibliothek.

**Wichtig**  
Ein mit Keytool generierter Schlüssel wird in der Software generiert und dann AWS CloudHSM als extrahierbarer, persistenter Schlüssel importiert.

[Anweisungen zum Erstellen nicht extrahierbarer Schlüssel direkt auf dem Hardware-Sicherheitsmodul (HSM) und deren anschließende Verwendung mit Keytool oder Jarsigner finden Sie im Codebeispiel unter Registrierung bereits vorhandener Schlüssel mit dem Schlüsselspeicher. AWS CloudHSM](register-pre-existing-keys-with-keystore.md) Wir empfehlen nachdrücklich, nicht exportierbare Schlüssel außerhalb von keytool zu generieren und dann entsprechende Zertifikate in den Schlüsselspeicher zu importieren. Wenn Sie extrahierbare RSA- oder EC-Schlüssel über Keytool und Jarsigner verwenden, exportieren die Anbieter Schlüssel aus dem und verwenden den Schlüssel dann lokal für Signaturvorgänge. AWS CloudHSM 

Wenn mehrere Client-Instanzen mit Ihrem CloudHSM-Cluster verbunden sind, beachten Sie, dass das Importieren eines Zertifikats im Schlüsselspeicher einer Clientinstanz die Zertifikate nicht automatisch auf anderen Client-Instanzen verfügbar macht. Um den Schlüssel und die zugehörigen Zertifikate auf jeder Client-Instanz zu registrieren, müssen Sie eine Java-Anwendung ausführen, wie unter [Generieren eines CSR mit Keytool](generate_csr_using_keytool.md) beschrieben. Alternativ können Sie die erforderlichen Änderungen auf einem Client vornehmen und die resultierende Schlüsselspeicherdatei auf jede andere Client-Instanz kopieren.

**Beispiel 1:** Um einen symmetrischen AES-256-Schlüssel zu generieren und ihn in einer Schlüsselspeicherdatei mit dem Namen „example\$1keystore.store“ im Arbeitsverzeichnis zu speichern. Durch eine eindeutige Bezeichnung ersetzen. *<secret label>*

```
keytool -genseckey -alias <secret label> -keyalg aes \
		-keysize 256 -keystore example_keystore.store \
		-storetype CloudHSM -J-classpath '-J/opt/cloudhsm/java/*' \
		-J-Djava.library.path=/opt/cloudhsm/lib/
```

**Beispiel 2:** Um ein RSA 2048-Schlüsselpaar zu generieren und es in einer Schlüsselspeicherdatei mit dem Namen „example\$1keystore.store“ im Arbeitsverzeichnis zu speichern. Durch eine eindeutige Bezeichnung ersetzen. *<RSA key pair label>*

```
keytool -genkeypair -alias <RSA key pair label> \
        -keyalg rsa -keysize 2048 \
        -sigalg sha512withrsa \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

**Beispiel 3:** Um einen P256-ED-Schlüssel zu generieren und ihn in einer Schlüsselspeicherdatei mit dem Namen „example\$1keystore.store“ im Arbeitsverzeichnis zu speichern. Durch eine eindeutige Bezeichnung ersetzen. *<ec key pair label>*

```
keytool -genkeypair -alias <ec key pair label> \
        -keyalg ec -keysize 256 \
        -sigalg SHA512withECDSA \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

Sie finden eine Liste der [unterstützten Signaturalgorithmen](java-lib-supported.md#java-sign-verify) in der Java-Bibliothek.

# Löschen Sie einen AWS CloudHSM Schlüssel mit Keytool
<a name="delete_key_using_keytool"></a>

Der AWS CloudHSM Schlüsselspeicher unterstützt das Löschen von Schlüsseln nicht. Um einen Schlüssel zu löschen, müssen Sie die `deleteKey` Funktion AWS CloudHSM des Befehlszeilentools von verwenden[Löschen Sie einen AWS CloudHSM Schlüssel mit KMU](key_mgmt_util-deleteKey.md).

# Generieren Sie eine AWS CloudHSM CSR mit Keytool
<a name="generate_csr_using_keytool"></a>

Sie erhalten die größte Flexibilität beim Generieren einer Zertifikatsignieranforderung (Certificate Signing Request, CSR), wenn Sie die [OpenSSL Dynamic Engine für AWS CloudHSM Client SDK 5](openssl-library.md) verwenden. Der folgende Befehl verwendet keytool, um eine CSR für ein Schlüsselpaar mit dem Alias, `example-key-pair`, zu generieren.

```
keytool -certreq -alias <key pair label> \
        -file example_csr.csr \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

**Anmerkung**  
Um ein Schlüsselpaar von keytool zu verwenden, muss dieses Schlüsselpaar einen Eintrag in der angegebenen Schlüsselspeicherdatei haben. Wenn Sie ein Schlüsselpaar verwenden möchten, das außerhalb von keytool generiert wurde, müssen Sie die Schlüssel- und Zertifikatmetadaten in den Schlüsselspeicher importieren. Anweisungen zum Importieren der Keystore-Daten finden Sie unter [Import von Zwischen- und Stammzertifikaten in AWS CloudHSM Key](import_cert_using_keytool.md) Store mit Keytool.

# Verwenden Sie Keytool, um Zwischen- und Stammzertifikate in den Schlüsselspeicher zu importieren AWS CloudHSM
<a name="import_cert_using_keytool"></a>

Um ein CA-Zertifikat zu importieren AWS CloudHSM, müssen Sie die Überprüfung einer vollständigen Zertifikatskette für ein neu importiertes Zertifikat aktivieren. Im Folgenden wird ein Beispielbefehl gezeigt. 

```
keytool -import -trustcacerts -alias rootCAcert \
        -file rootCAcert.cert -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

Wenn Sie mehrere Client-Instances mit Ihrem AWS CloudHSM Cluster verbinden, wird durch den Import eines Zertifikats in den Schlüsselspeicher einer Client-Instance das Zertifikat nicht automatisch auf anderen Client-Instances verfügbar gemacht. Sie müssen das Zertifikat auf jeder Client-Instanz importieren.

# Verwenden Sie Keytool, um Zertifikate aus dem AWS CloudHSM Schlüsselspeicher zu löschen
<a name="delete_cert_using_keytool"></a>

Der folgende Befehl zeigt ein Beispiel für das Löschen eines AWS CloudHSM Zertifikats aus einem Java-Keytool-Schlüsselspeicher. 

```
keytool -delete -alias mydomain -keystore \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

Wenn Sie mehrere Client-Instances mit Ihrem AWS CloudHSM Cluster verbinden, wird durch das Löschen eines Zertifikats im Schlüsselspeicher einer Client-Instanz das Zertifikat nicht automatisch aus anderen Client-Instances entfernt. Sie müssen das Zertifikat auf jeder Client-Instanz löschen.

# Importieren Sie ein funktionierendes Zertifikat mit AWS CloudHSM Keytool in den Schlüsselspeicher
<a name="import_working_cert_using_keytool"></a>

Sobald eine Zertifikatsignieranforderung (CSR) signiert ist, können Sie sie in den AWS CloudHSM -Schlüsselspeicher importieren und mit dem entsprechenden Schlüsselpaar verknüpfen. Der folgende Befehl bietet ein Beispiel. 

```
keytool -importcert -noprompt -alias <key pair label> \
        -file example_certificate.crt \
        -keystore example_keystore.store
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

Der Alias sollte ein Schlüsselpaar mit einem zugeordneten Zertifikat im Schlüsselspeicher sein. Wenn der Schlüssel außerhalb von keytool oder auf einer anderen Client-Instanz generiert wird, müssen Sie zuerst die Schlüssel- und Zertifikatmetadaten in den Schlüsselspeicher importieren. Anweisungen zum Importieren der Zertifikatsmetadaten finden Sie im Codebeispiel unter [Registrierung bereits vorhandener Schlüssel mit dem AWS CloudHSM Schlüsselspeicher](register-pre-existing-keys-with-keystore.md). 

Die Zertifikatkette muss überprüfbar sein. Wenn Sie das Zertifikat nicht überprüfen können, müssen Sie möglicherweise das Signaturzertifikat (Zertifizierungsstelle) in den Schlüsselspeicher importieren, damit die Kette überprüft werden kann.

# Exportieren Sie ein Zertifikat AWS CloudHSM mit Keytool
<a name="export_cert_using_keytool"></a>

Im folgenden Beispiel wird ein Zertifikat im Binärformat X.509 generiert. Um ein menschenlesbares Zertifikat von zu exportieren AWS CloudHSM, fügen Sie `-rfc` es dem `-exportcert` Befehl hinzu. 

```
keytool -exportcert -alias <key pair label> \
        -file example_exported_certificate.crt \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```