Configurer le protocole TLS mutuel entre le client et AWS CloudHSM (recommandé) - AWS CloudHSM

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é)

Les rubriques suivantes décrivent les étapes à suivre pour activer le protocole TLS mutuel (mTLS) entre le client et. AWS CloudHSM Actuellement, cette fonctionnalité est exclusivement disponible sur hsm2m.medium. Pour plus d'informations sur le type HSM, consultezAWS CloudHSM modes de cluster.

Étape 1. Créez et enregistrez une ancre de confiance sur le HSM

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 :

Création d'une clé privée et d'un certificat racine auto-signé

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.

Les exemples suivants montrent comment créer une clé privée et un certificat racine auto-signé avec OpenSSL.

Exemple — 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_ca_root_1.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:
Exemple — 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

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
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. À 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" } }
  3. Utilisez la Enregistrer une ancre de confiance avec la CLI CloudHSM 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.

Exemple — 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" } } }
Note

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" } ] } }
Note

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

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

Création d'une clé privée et d'une chaîne de certificats client

Exemple — 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)
Exemple — 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 []:
Exemple — 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 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>
Exemple — 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 et créer une chaîne de certificats client nomméessl-client.pem, qui sera utilisée pour la configuration à l'étape suivante.

$ cat <ssl-client.crt> <mtls_ca_root_1.crt> > <ssl-client.pem>
Note

Si vous avez enregistré des certificats intermédiaires dans Create et que vous enregistrez une ancre de confiance sur le HSM 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

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, consultezAWS CloudHSM Outil de configuration du SDK client 5.

PKCS #11 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
  2. 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
  2. À l'aide d'un PowerShell interpréteur, utilisez l'outil de configuration pour spécifier ssl-client.pem etssl-client.key.

    & "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
  2. 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
  2. À l'aide d'un PowerShell interpréteur, utilisez l'outil de configuration pour spécifier ssl-client.pem etssl-client.key.

    & "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
  2. 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
  2. À l'aide d'un PowerShell interpréteur, utilisez l'outil de configuration pour spécifier ssl-client.pem etssl-client.key.

    & "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
  2. 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
  2. À l'aide d'un PowerShell interpréteur, utilisez l'outil de configuration pour spécifier ssl-client.pem etssl-client.key.

    & "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

Après la configuration à l'aide de 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
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. À 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.

  3. Utilisez la Définissez le niveau d'application mTLS à l'aide de la CLI CloudHSM commande pour définir l'application. Pour plus d'informations, consultez l'exemple suivant ou utilisez la commande help cluster mtls set-enforcement.

    Exemple — 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.