

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utiliser le magasin de AWS CloudHSM clés avec keytool à l'aide du SDK client 3
Utiliser le magasin de clés avec keytool

[ Keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) est un utilitaire de ligne de commande populaire pour les tâches courantes de clés et de certificats sur les systèmes Linux. La documentation AWS CloudHSM n'inclut pas de didacticiel complet sur keytool. Cet article explique les paramètres spécifiques que vous devez utiliser avec les différentes fonctions de keytool lorsque vous les utilisez AWS CloudHSM comme racine de confiance via le magasin de AWS CloudHSM clés.

Lorsque vous utilisez keytool avec le magasin de AWS CloudHSM clés, spécifiez les arguments suivants pour chaque commande keytool :

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

Si vous souhaitez créer un nouveau fichier de stockage de clés à l'aide du magasin de AWS CloudHSM clés, consultez[Utilisez le SDK AWS CloudHSM KeyStore for AWS CloudHSM Client 3](alternative-keystore.md#using_cloudhsm_keystore). Pour utiliser un magasin de clés existant, spécifiez son nom (y compris le chemin) à l'aide de l'argument —keystore à keytool. Si vous spécifiez un fichier de stockage de clés inexistant dans une commande keytool, le magasin de AWS CloudHSM clés crée un nouveau fichier de stockage de clés.

# Créez de nouvelles AWS CloudHSM clés avec keytool
Créer de nouvelles clés avec keytool

Vous pouvez utiliser keytool pour générer n'importe quel type de clé pris en charge par le SDK AWS CloudHSM JCE. Consultez la liste complète des clés et longueurs dans l'article [Clés prises en charge](java-lib-supported.md#java-keys) dans la bibliothèque Java.

**Important**  
Une clé générée par keytool est générée dans le logiciel, puis importée AWS CloudHSM sous forme de clé persistante extractible.

Les instructions pour créer des clés non extractibles directement sur le module de sécurité matériel (HSM), puis les utiliser avec keytool ou Jarsigner, sont présentées dans l'exemple de code de la section [Enregistrement](register-pre-existing-keys-with-keystore.md) de clés préexistantes avec le magasin de clés. AWS CloudHSM Nous vous recommandons fortement de générer des clés non exportables en dehors de keytool, puis d'importer les certificats correspondants dans le magasin de clés. Si vous utilisez des clés RSA ou EC extractibles via keytool et jarsigner, les fournisseurs exportent les clés depuis le, AWS CloudHSM puis les utilisent localement pour les opérations de signature.

Si plusieurs instances clientes sont connectées à votre cluster CloudHSM, sachez que l'importation d'un certificat sur le magasin de clés d'une instance cliente ne rend pas automatiquement les certificats disponibles sur d'autres instances clientes. Pour enregistrer la clé et les certificats associés sur chaque instance client, vous devez exécuter une application Java comme décrit dans [Générer un CSR à l'aide de Keytool](generate_csr_using_keytool.md). Vous pouvez également apporter les modifications nécessaires sur un client et copier le fichier de stockage de clés résultant sur chaque autre instance cliente.

**Exemple 1 :** générer une clé AES-256 symétrique et l'enregistrer dans un fichier de stockage de clés nommé « example\$1keystore.store », dans le répertoire de travail. *<secret label>*Remplacez-le par une étiquette unique.

```
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/
```

**Exemple 2 :** générer une paire de clés RSA 2048 et l'enregistrer dans un fichier de stockage de clés nommé « example\$1keystore.store » dans le répertoire de travail. *<RSA key pair label>*Remplacez-le par une étiquette unique.

```
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/
```

**Exemple 3 :** générer une clé ED p256 et l'enregistrer dans un fichier de stockage de clés nommé « example\$1keystore.store » dans le répertoire de travail. *<ec key pair label>*Remplacez-le par une étiquette unique.

```
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/
```

Vous trouverez une liste des [algorithmes de signature pris en charge](java-lib-supported.md#java-sign-verify) dans la bibliothèque Java.

# Supprimer une AWS CloudHSM clé à l'aide de keytool
Supprimer une clé à l'aide de Keytool

Le magasin de AWS CloudHSM clés ne prend pas en charge la suppression de clés. Pour supprimer la clé, vous devez utiliser la `deleteKey` fonction de l'outil AWS CloudHSM de ligne de commande,[Supprimer une AWS CloudHSM clé à l'aide de KMU](key_mgmt_util-deleteKey.md).

# Générer un AWS CloudHSM CSR à l'aide de keytool
Générer une CSR à l'aide de Keytool

Vous bénéficiez de la plus grande flexibilité dans la génération d'une demande de signature de certificat (CSR) si vous utilisez le [Moteur AWS CloudHSM dynamique OpenSSL pour le SDK client 5](openssl-library.md). La commande suivante utilise keytool pour générer un CSR pour une paire de clés avec l'alias, `example-key-pair`.

```
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/
```

**Note**  
Pour utiliser une paire de clés de keytool, cette paire de clés doit avoir une entrée dans le fichier de stockage de clés spécifié. Si vous souhaitez utiliser une paire de clés générée en dehors de keytool, vous devez importer les métadonnées de clé et de certificat dans le magasin de clés. Pour obtenir des instructions sur l'importation des données du magasin de clés, voir [Importation de certificats intermédiaires et racines dans le magasin de AWS CloudHSM clés à l'aide de Keytool](import_cert_using_keytool.md).

# Utilisez keytool pour importer des certificats intermédiaires et racines dans le magasin de AWS CloudHSM clés
Utilisez keytool pour importer des certificats dans le magasin de clés

Pour importer un certificat CA dans AWS CloudHSM, vous devez activer la vérification d'une chaîne de certificats complète sur un certificat récemment importé. Voici un exemple de commande. 

```
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/
```

Si vous connectez plusieurs instances clientes à votre AWS CloudHSM cluster, l'importation d'un certificat dans le magasin de clés d'une instance client ne le rendra pas automatiquement disponible sur les autres instances clientes. Vous devez importer le certificat sur chaque instance client.

# Utiliser keytool pour supprimer les certificats du magasin de AWS CloudHSM clés
Utiliser keytool pour supprimer les certificats du magasin de clés

La commande suivante montre un exemple de suppression d'un AWS CloudHSM certificat d'un magasin de clés Java Keytool. 

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

Si vous connectez plusieurs instances clientes à votre AWS CloudHSM cluster, la suppression d'un certificat dans le magasin de clés d'une instance client ne supprimera pas automatiquement le certificat des autres instances clientes. Vous devez supprimer le certificat sur chaque instance cliente.

# Importer un certificat fonctionnel dans le magasin de AWS CloudHSM clés à l'aide de keytool
Importer un certificat fonctionnel dans le magasin de clés à l'aide de keytool

Une fois qu'une demande de signature de certificat (CSR) est signée, vous pouvez l'importer dans le magasin de clés AWS CloudHSM et l'associer à la paire de clés appropriée. La commande suivante fournit un exemple. 

```
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/
```

L'alias doit être une paire de clés avec un certificat associé dans le magasin de clés. Si la clé est générée en dehors de keytool, ou si elle est générée sur une autre instance cliente, vous devez d'abord importer la clé et les métadonnées de certificat dans le magasin de clés. Pour obtenir des instructions sur l'importation des métadonnées du certificat, consultez l'exemple de code dans [Enregistrement de clés préexistantes auprès du magasin de AWS CloudHSM clés](register-pre-existing-keys-with-keystore.md). 

La chaîne de certificats doit être vérifiable. Si vous ne parvenez pas à vérifier le certificat, vous devrez peut-être importer le certificat de signature (autorité de certification) dans le magasin de clés afin que la chaîne puisse être vérifiée.

# Exporter un certificat à AWS CloudHSM l'aide de keytool
Exporter un certificat à l'aide de keytool

L'exemple suivant génère un certificat au format binaire X.509. Pour exporter un certificat lisible par l'homme depuis AWS CloudHSM, ajoutez-le `-rfc` à la `-exportcert` commande. 

```
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/
```