

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.

# Configurer le protocole TLS mutuel entre le client et AWS CloudHSM (recommandé)
<a name="getting-started-setup-mtls"></a>

Les rubriques suivantes décrivent les étapes que vous devez suivre pour activer la sécurité mutuelle de la couche de transport (MTL) entre le client et AWS CloudHSM.

**Considérations**
+ Actuellement, cette fonctionnalité est exclusivement disponible sur hsm2m.medium. Pour plus d'informations sur le type HSM, consultez[AWS CloudHSM modes de cluster](cluster-hsm-types.md).
+ Le protocole MTL n'est pas pris en charge pour les AWS CloudHSM principaux magasins utilisés avec AWS Key Management Service.

**Topics**
+ [Étape 1. Créez et enregistrez une ancre de confiance sur le HSM](#setup-mtls-create-and-register-trust-anchor)
+ [Étape 2. Activez les MTL pour AWS CloudHSM](#getting-start-setup-mtl-sdk)
+ [Étape 3. Définissez l'application des MTL pour AWS CloudHSM](#getting-start-setup-mtls-enforcement)

## Étape 1. Créez et enregistrez une ancre de confiance sur le HSM
<a name="setup-mtls-create-and-register-trust-anchor"></a>

Une ancre de confiance doit être créée et enregistrée sur le HSM avant d'activer les MTL. Il s'agit d'un processus en deux étapes : 

**Topics**
+ [Création d'une clé privée et d'un certificat racine auto-signé](#setup-mtls-create-trust-anchor)
+ [Enregistrez l'ancre de confiance sur le HSM](#setup-mtls-register-trust-anchor)

### Création d'une clé privée et d'un certificat racine auto-signé
<a name="setup-mtls-create-trust-anchor"></a>

**Note**  
Pour un cluster de production, la clé doit être créée de manière sécurisée à l'aide d'une source fiable de caractère aléatoire. Nous vous recommandons d'utiliser un HSM hors site et hors ligne sécurisé, ou équivalent. Stockez la clé en toute sécurité.  
Pour le développement et les tests, vous pouvez utiliser n'importe quel outil pratique (tel qu'OpenSSL) pour créer la clé et signer vous-même un certificat racine. Vous aurez besoin de la clé et du certificat racine pour signer le certificat client dans le cadre de l'[activation des mTLs pour AWS CloudHSM](#getting-start-setup-mtl-sdk).

Les exemples suivants montrent comment créer une clé privée et un certificat racine auto-signé avec [OpenSSL](https://www.openssl.org/). 

**Example — Créer une clé privée à l'aide d'OpenSSL**  
Utilisez la commande suivante pour créer une clé RSA de 4096 bits chiffrée avec l'algorithme AES-256. Pour utiliser cet exemple, *<mtls\$1ca\$1root\$11.key>* remplacez-le par le nom du fichier dans lequel vous souhaitez stocker la clé.  

```
$ openssl genrsa -out <mtls_ca_root_1.key> -aes256 4096
Generating RSA private key, 4096 bit long modulus
.....................................+++
.+++
e is 65537 (0x10001)
Enter pass phrase for mtls_ca_root_1.key:
Verifying - Enter pass phrase for mtls_ca_root_1.key:
```

**Example — Créez un certificat racine auto-signé avec OpenSSL**  
Utilisez la commande suivante pour créer un certificat racine autosigné nommé `mtls_ca_root_1.crt` à partir de la clé privée que vous venez de créer. Le certificat est valide pendant 25 ans (9130 jours). Lisez les instructions à l'écran et suivez les invites.   

```
$ openssl req -new -x509 -days 9130 -key mtls_ca_root_1.key -out mtls_ca_root_1.crt
Enter pass phrase for mtls_ca_root_1.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

### Enregistrez l'ancre de confiance sur le HSM
<a name="setup-mtls-register-trust-anchor"></a>

Après avoir créé un certificat racine auto-signé, l'administrateur doit l'enregistrer comme point d'ancrage de confiance auprès du AWS CloudHSM cluster.

**Pour enregistrer une ancre de confiance auprès du HSM**

1. Utilisez la commande suivante pour démarrer la CLI CloudHSM.

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm-cli interactive
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. À l'aide de la CLI CloudHSM, connectez-vous en tant qu'administrateur.

   ```
   aws-cloudhsm > login --username <admin> --role admin
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<admin>",
       "role": "admin"
     }
   }
   ```

1. Utilisez la ** [Enregistrer une ancre de confiance avec la CLI CloudHSM](cloudhsm_cli-cluster-mtls-register-trust-anchor.md) ** commande pour enregistrer l'ancre de confiance. Pour plus d'informations, consultez l'exemple suivant ou utilisez la commande **help cluster mtls register-trust-anchor**.

**Example — Enregistrez une ancre de confiance auprès AWS CloudHSM du cluster**  
L'exemple suivant montre comment utiliser la **cluster mtls register-trust-anchor** commande dans la CLI CloudHSM pour enregistrer une ancre de confiance sur le HSM. Pour utiliser cette commande, l’administrateur doit être connecté au HSM. Remplacez les valeurs suivantes par les vôtres :  

```
aws-cloudhsm > cluster mtls register-trust-anchor --path </path/mtls_ca_root_1.crt>
{
  "error_code": 0,
  "data": {
    "trust_anchor": {
      "certificate-reference": "0x01",
      "certificate": "<PEM Encoded Certificate>",
      "cluster-coverage": "full"
    }
  }
}
```
AWS CloudHSM prend en charge l'enregistrement des certificats intermédiaires en tant qu'ancre de confiance. Dans de tels cas, l'intégralité du fichier de chaîne de certificats codé PEM doit être enregistré sur le HSM, les certificats étant classés par ordre hiérarchique.   
 AWS CloudHSM prend en charge une chaîne de certificats de 6980 octets.
Après avoir enregistré avec succès l'ancre de confiance, vous pouvez exécuter la **cluster mtls list-trust-anchors** commande pour vérifier les ancres de confiance actuellement enregistrées, comme indiqué ci-dessous :  

```
aws-cloudhsm > cluster mtls list-trust-anchors
{
  "error_code": 0,
  "data": {
    "trust_anchors": [
      {
        "certificate-reference": "0x01",
        "certificate": "<PEM Encoded Certificate>",
        "cluster-coverage": "full"
      }
    ]
  }
}
```
 Le nombre maximum d'ancres de confiance pouvant être enregistrées sur hsm2m.medium est de deux (2).

## Étape 2. Activez les MTL pour AWS CloudHSM
<a name="getting-start-setup-mtl-sdk"></a>

Pour activer les mTL pour AWS CloudHSM, vous devez créer une clé privée et un certificat client signés par le certificat racine que nous avons généré dans [Créer et enregistrer une ancre de confiance sur le HSM](#setup-mtls-create-and-register-trust-anchor), puis utiliser l'un des outils de configuration du SDK client 5 pour configurer le chemin de la clé privée et le chemin de la chaîne de certificats client. 

**Topics**
+ [Création d'une clé privée et d'une chaîne de certificats client](#create-client-ssl)
+ [Configuration de mTLS pour le SDK client 5](#enable-ssl-5)

### Création d'une clé privée et d'une chaîne de certificats client
<a name="create-client-ssl"></a>

**Example — Créer une clé privée à l'aide d'OpenSSL**  
Utilisez la commande suivante pour créer une clé RSA de 4096 bits. Pour utiliser cet exemple, *<ssl-client.key>* remplacez-le par le nom du fichier dans lequel vous souhaitez stocker la clé.  

```
$ openssl genrsa -out <ssl-client.key> 4096
Generating RSA private key, 4096 bit long modulus
.....................................+++
.+++
e is 65537 (0x10001)
```

**Example — Génère une demande de signature de certificat (CSR) avec OpenSSL**  
Utilisez la commande suivante pour générer une demande de signature de certificat (CSR) à partir de la clé privée que vous venez de créer. Lisez les instructions à l'écran et suivez les invites.  

```
$ openssl req -new -key <ssl-client.key> -out <ssl-client.csr>
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

**Example — Signez le CSR avec le certificat racine**  
Utilisez la commande suivante pour signer le CSR avec le certificat racine que nous avons créé et enregistré dans [Create, enregistrez une ancre de confiance sur le HSM](#setup-mtls-create-and-register-trust-anchor) et créez un certificat client nommé`ssl-client.crt`. Le certificat est valide pendant 5 ans (1826 jours).   

```
$ openssl x509 -req -days 1826 -in <ssl-client.csr> -CA <mtls_ca_root_1.crt> -CAkey <mtls_ca_root_1.key> -CAcreateserial -out <ssl-client.crt>
```

**Example — Crée une chaîne de certificats clients**  
Utilisez la commande suivante pour combiner le certificat client et le certificat racine que nous avons créés et enregistrés dans [Créer, enregistrer une ancre de confiance sur le HSM](#setup-mtls-create-and-register-trust-anchor) et créer une chaîne de certificats client nommée`ssl-client.pem`, qui sera utilisée pour la configuration à l'étape suivante.  

```
$ cat <ssl-client.crt> <mtls_ca_root_1.crt> > <ssl-client.pem>
```
 Si vous avez enregistré des certificats intermédiaires dans [Create et que vous enregistrez une ancre de confiance sur le HSM](#setup-mtls-create-and-register-trust-anchor) en tant qu'ancre de confiance, assurez-vous de combiner le certificat client avec l'ensemble de la chaîne de certificats pour créer une chaîne de certificats client.

### Configuration de mTLS pour le SDK client 5
<a name="enable-ssl-5"></a>

Utilisez l'un des outils de configuration du SDK client 5 pour activer le protocole TLS mutuel en fournissant le bon chemin de clé client et le chemin de chaîne de certificats client appropriés. Pour plus d'informations sur l'outil de configuration pour le SDK client 5, consultez[AWS CloudHSM Outil de configuration du SDK client 5](configure-sdk-5.md).

------
#### [ PKCS \$111 library ]

**Pour utiliser un certificat et une clé personnalisés pour l'authentification mutuelle TLS Client-HSM avec le SDK client 5 sous Linux**

1. Copiez votre clé et votre certificat dans le répertoire approprié.

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   $ sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  Utilisez l'outil de configuration pour spécifier `ssl-client.pem` et `ssl-client.key`.

   ```
   $ sudo /opt/cloudhsm/bin/configure-pkcs11 \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**Pour utiliser un certificat et une clé personnalisés pour l'authentification mutuelle TLS Client-HSM avec le SDK client 5 sous Windows**

1. Copiez votre clé et votre certificat dans le répertoire approprié.

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  À l'aide d'un PowerShell interpréteur, utilisez l'outil de configuration pour spécifier `ssl-client.pem` et`ssl-client.key`.

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ OpenSSL Dynamic Engine ]

**Pour utiliser un certificat et une clé personnalisés pour l'authentification mutuelle TLS Client-HSM avec le SDK client 5 sous Linux**

1. Copiez votre clé et votre certificat dans le répertoire approprié.

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  Utilisez l'outil de configuration pour spécifier `ssl-client.pem` et `ssl-client.key`.

   ```
   $ sudo /opt/cloudhsm/bin/configure-dyn \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

------
#### [ Key Storage Provider (KSP) ]

**Pour utiliser un certificat et une clé personnalisés pour l'authentification mutuelle TLS Client-HSM avec le SDK client 5 sous Windows**

1. Copiez votre clé et votre certificat dans le répertoire approprié.

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  À l'aide d'un PowerShell interpréteur, utilisez l'outil de configuration pour spécifier `ssl-client.pem` et`ssl-client.key`.

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-ksp.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ JCE provider ]

**Pour utiliser un certificat et une clé personnalisés pour l'authentification mutuelle TLS Client-HSM avec le SDK client 5 sous Linux**

1. Copiez votre clé et votre certificat dans le répertoire approprié.

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  Utilisez l'outil de configuration pour spécifier `ssl-client.pem` et `ssl-client.key`.

   ```
   $ sudo /opt/cloudhsm/bin/configure-jce \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**Pour utiliser un certificat et une clé personnalisés pour l'authentification mutuelle TLS Client-HSM avec le SDK client 5 sous Windows**

1. Copiez votre clé et votre certificat dans le répertoire approprié.

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  À l'aide d'un PowerShell interpréteur, utilisez l'outil de configuration pour spécifier `ssl-client.pem` et`ssl-client.key`.

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ CloudHSM CLI ]

**Pour utiliser un certificat et une clé personnalisés pour l'authentification mutuelle TLS Client-HSM avec le SDK client 5 sous Linux**

1. Copiez votre clé et votre certificat dans le répertoire approprié.

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  Utilisez l'outil de configuration pour spécifier `ssl-client.pem` et `ssl-client.key`.

   ```
   $ sudo /opt/cloudhsm/bin/configure-cli \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**Pour utiliser un certificat et une clé personnalisés pour l'authentification mutuelle TLS Client-HSM avec le SDK client 5 sous Windows**

1. Copiez votre clé et votre certificat dans le répertoire approprié.

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  À l'aide d'un PowerShell interpréteur, utilisez l'outil de configuration pour spécifier `ssl-client.pem` et`ssl-client.key`.

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-cli.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------

## Étape 3. Définissez l'application des MTL pour AWS CloudHSM
<a name="getting-start-setup-mtls-enforcement"></a>

Après la configuration avec l'un des outils de configuration du SDK client 5, la connexion entre le client et le client AWS CloudHSM sera un TLS mutuel dans le cluster. Cependant, la suppression du chemin de clé privée et du chemin de la chaîne de certificats client du fichier de configuration transformera à nouveau la connexion en TLS normal. Vous pouvez utiliser la CLI CloudHSM pour définir l'application MTLS dans le cluster en effectuant les étapes suivantes :

1. Utilisez la commande suivante pour démarrer la CLI CloudHSM.

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm-cli interactive
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. À l'aide de la CLI CloudHSM, connectez-vous en tant qu'administrateur.

   ```
   aws-cloudhsm > login --username <admin> --role admin
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<admin>",
       "role": "admin"
     }
   }
   ```
**Note**  
 1. Assurez-vous d'avoir configuré la CLI CloudHSM et de démarrer la CLI CloudHSM sous une connexion mTLS.  
 2. Vous devez être connecté en tant qu'utilisateur administrateur par défaut avec un nom d'utilisateur en tant qu'**administrateur** avant de définir l'application des mTLS. 

1. Utilisez la ** [Définissez le niveau d'application mTLS à l'aide de la CLI CloudHSM](cloudhsm_cli-cluster-mtls-set-enforcement.md) ** commande pour définir l'application. Pour plus d'informations, consultez l'exemple suivant ou utilisez la commande **help cluster mtls set-enforcement**.  
**Example — Définissez l'application des MTL avec le cluster AWS CloudHSM**  

   L'exemple suivant montre comment utiliser la **cluster mtls set-enforcement** commande dans la CLI CloudHSM pour définir l'application mTLS avec le HSM. Pour utiliser cette commande, l'administrateur dont le nom d'utilisateur est administrateur doit être connecté au HSM.

   ```
   aws-cloudhsm > cluster mtls set-enforcement --level cluster
   {
     "error_code": 0,
     "data": {
       "message": "Mtls enforcement level set to Cluster successfully"
     }
   }
   ```
**Avertissement**  
Une fois que vous aurez imposé l'utilisation de MTLS dans le cluster, toutes les connexions non MTLS existantes seront supprimées et vous ne pourrez vous connecter au cluster qu'avec des certificats MTLS.