Configurar una TLS mutua entre el cliente y el AWS CloudHSM (recomendado) - AWS CloudHSM

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configurar una TLS mutua entre el cliente y el AWS CloudHSM (recomendado)

En los temas siguientes se describen los pasos que debe completar para habilitar el TLS mutuo (mTLS) entre el cliente y. AWS CloudHSM Actualmente, esta característica está disponible exclusivamente en hsm2m.medium. Para obtener más información sobre los tipos de HSM, consulte AWS CloudHSM modos de clúster.

Paso 1. Creación y registro de un anclaje de veracidad en el HSM

Se debe crear y registrar un anclaje de veracidad en el HSM antes de habilitar la mTLS. Se trata de un proceso de dos partes:

Crear una clave privada y un certificado raíz autofirmado

nota

Para un clúster de producción, la clave debe crearse de forma segura mediante una fuente de asignación al azar. Recomendamos que utilice un HSM externo seguro que esté sin conexión o equivalente. Guarde la clave de forma segura.

Durante las fases de desarrollo y pruebas, puede utilizar cualquier herramienta adecuada (como OpenSSL) para crear la clave y autofirmar un certificado raíz. Necesitará la clave y el certificado raíz para firmar el certificado de cliente en la opción Habilitar mTLS. AWS CloudHSM

En los siguientes ejemplos, se muestra cómo crear una clave privada y un certificado raíz autofirmado con OpenSSL.

ejemplo : creación de una clave privada con OpenSSL

Use el siguiente comando para crear una clave RSA de 4096 bits y cifrada con el algoritmo AES-256. Para usar este ejemplo, <mtls_ca_root_1.key> reemplácelo por el nombre del archivo en el que desee almacenar la clave.

$ 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:
ejemplo — Crear un certificado raíz autofirmado con OpenSSL

Use el siguiente comando para crear un certificado raíz autofirmado y denominado mtls_ca_root_1.crt a partir de la clave privada que acaba de crear. El certificado es válido durante 25 años (9130 días). Lea las instrucciones que aparecen en pantalla y siga las indicaciones.

$ 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 []:

Registro del anclaje de veracidad en el HSM

Tras crear un certificado raíz autofirmado, el administrador debe registrarlo como ancla de confianza en el AWS CloudHSM clúster.

Para registrar un anclaje de veracidad en el HSM
  1. Use el siguiente comando para iniciar la CLI de CloudHSM:

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
  2. Inicie sesión en la CLI de CloudHSM como administrador.

    aws-cloudhsm > login --username <admin> --role admin Enter password: { "error_code": 0, "data": { "username": "<admin>", "role": "admin" } }
  3. Use el comando Registrar un anclaje de veracidad con la CLI de CloudHSM para registrar el anclaje de veracidad. Para obtener más información, consulte el siguiente ejemplo o utilice el comando help cluster mtls register-trust-anchor.

ejemplo — Registre un ancla de confianza con AWS CloudHSM el clúster

En el siguiente ejemplo, se muestra cómo se usa el comando cluster mtls register-trust-anchor la CLI de CloudHSM para registrar un anclaje de veracidad en el HSM. Para utilizar este comando, el administrador tiene que haber iniciado sesión en el HSM. Reemplace estos valores por sus propios valores:

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" } } }
nota

AWS CloudHSM admite el registro de certificados intermedios como ancla de confianza. En esos casos, todo el archivo de cadena de certificados codificados en PEM debe registrarse en el HSM junto con los certificados en orden jerárquico.

AWS CloudHSM admite una cadena de certificados de 6980 bytes.

Tras registrar correctamente el anclaje de veracidad, puede ejecutar el comando cluster mtls list-trust-anchors para comprobar los anclajes de veracidad registrados actualmente, como se muestra a continuación:

aws-cloudhsm > cluster mtls list-trust-anchors { "error_code": 0, "data": { "trust_anchors": [ { "certificate-reference": "0x01", "certificate": "<PEM Encoded Certificate>", "cluster-coverage": "full" } ] } }
nota

El número máximo de anclajes de veracidad que se puede registrar en hsm2m.medium es dos (2).

Paso 2. Habilite los mTLS para AWS CloudHSM

Para habilitar los mTLS AWS CloudHSM, debe crear una clave privada y un certificado de cliente firmados con el certificado raíz que generamos en Crear y registrar un anclaje de confianza en el HSM y, a continuación, utilizar cualquier herramienta de configuración del SDK 5 del cliente para configurar la ruta de la clave privada y la ruta de la cadena del certificado de cliente.

Crear una clave privada y una cadena del certificado de cliente

ejemplo : creación de una clave privada con OpenSSL

Use el siguiente comando para crear una clave RSA de 4096 bits. Para usar este ejemplo, <ssl-client.key> reemplácelo por el nombre del archivo en el que desee almacenar la clave.

$ openssl genrsa -out <ssl-client.key> 4096 Generating RSA private key, 4096 bit long modulus .....................................+++ .+++ e is 65537 (0x10001)
ejemplo – Generar una solicitud de firma de certificado (CSR) con OpenSSL

Use el siguiente comando para generar una solicitud de firma de certificado (CSR) desde la clave privada que acaba de crear. Lea las instrucciones que aparecen en pantalla y siga las indicaciones.

$ 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 []:
ejemplo – Firmar la CSR mediante el certificado raíz

Use el siguiente comando para firmar la CSR con el certificado raíz que creamos y registramos en Creación y registro de un anclaje de veracidad en el HSM y crear un certificado de cliente denominado ssl-client.crt. El certificado es válido durante 5 años (1826 días).

$ 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>
ejemplo – Crear una cadena de certificados del cliente

Use el siguiente comando para combinar el certificado de cliente y el certificado raíz que creamos y registramos en Crear y registrar un anclaje de veracidad en el HSM y crear una cadena de certificados del cliente denominada ssl-client.pem, que se usará la configuración en el paso siguiente.

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

Si registró certificados intermedios en Creación y registro de un anclaje de veracidad en el HSM como anclaje de veracidad, procure combinar el certificado de cliente con toda la cadena de certificados para crear una cadena de certificados del cliente.

Configurar mTLS para Client SDK 5

Use cualquiera de las herramientas de configuración de Client SDK5 para habilitar la TLS mutua proporcionando la ruta de clave de cliente y la ruta de cadena de certificados del cliente correctas. Para obtener más información sobre la herramienta de configuración para Client SDK 5, consulte AWS CloudHSM Herramienta de configuración Client SDK 5.

PKCS #11 library
Cómo usar un certificado y una clave personalizados para la autenticación mutua cliente-servidor de TLS con Client SDK 5 en Linux
  1. Copie la clave y el certificado en el directorio adecuado.

    $ sudo cp ssl-client.pem </opt/cloudhsm/etc> $ sudo cp ssl-client.key </opt/cloudhsm/etc>
  2. Use la herramienta de configuración para especificar ssl-client.pem y 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>
Cómo usar un certificado y una clave personalizados para la autenticación mutua de cliente al HSM con Client SDK 5 en Windows
  1. Copie la clave y el certificado en el directorio adecuado.

    cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
  2. Con un PowerShell intérprete, utilice la herramienta de configuración para especificar ssl-client.pem yssl-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
Cómo usar un certificado y una clave personalizados para la autenticación mutua cliente-servidor de TLS con Client SDK 5 en Linux
  1. Copie la clave y el certificado en el directorio adecuado.

    $ sudo cp ssl-client.pem </opt/cloudhsm/etc> sudo cp ssl-client.key </opt/cloudhsm/etc>
  2. Use la herramienta de configuración para especificar ssl-client.pem y 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)
Cómo usar un certificado y una clave personalizados para la autenticación mutua de cliente al HSM con Client SDK 5 en Windows
  1. Copie la clave y el certificado en el directorio adecuado.

    cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
  2. Con un PowerShell intérprete, utilice la herramienta de configuración para especificar ssl-client.pem yssl-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
Cómo usar un certificado y una clave personalizados para la autenticación mutua cliente-servidor de TLS con Client SDK 5 en Linux
  1. Copie la clave y el certificado en el directorio adecuado.

    $ sudo cp ssl-client.pem </opt/cloudhsm/etc> sudo cp ssl-client.key </opt/cloudhsm/etc>
  2. Use la herramienta de configuración para especificar ssl-client.pem y 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>
Cómo usar un certificado y una clave personalizados para la autenticación mutua de cliente al HSM con Client SDK 5 en Windows
  1. Copie la clave y el certificado en el directorio adecuado.

    cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
  2. Con un PowerShell intérprete, utilice la herramienta de configuración para especificar ssl-client.pem yssl-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
Cómo usar un certificado y una clave personalizados para la autenticación mutua cliente-servidor de TLS con Client SDK 5 en Linux
  1. Copie la clave y el certificado en el directorio adecuado.

    $ sudo cp ssl-client.pem </opt/cloudhsm/etc> sudo cp ssl-client.key </opt/cloudhsm/etc>
  2. Use la herramienta de configuración para especificar ssl-client.pem y 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>
Cómo usar un certificado y una clave personalizados para la autenticación mutua de cliente al HSM con Client SDK 5 en Windows
  1. Copie la clave y el certificado en el directorio adecuado.

    cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
  2. Con un PowerShell intérprete, utilice la herramienta de configuración para especificar ssl-client.pem yssl-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>

Paso 3. Establecer la aplicación de la mTLS para el AWS CloudHSM

Tras la configuración con cualquiera de las herramientas de configuración del Client SDK 5, la conexión entre el cliente y la TLS AWS CloudHSM será mutua en el clúster. Sin embargo, al eliminar la ruta de claves privada y la ruta de la cadena de certificados del cliente del archivo de configuración, la conexión volverá a ser una TLS normal. Puede usar la CLI de CloudHSM para configurar la aplicación de mtls en el clúster siguiendo estos pasos:

  1. Use el siguiente comando para iniciar la CLI de CloudHSM:

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
  2. Inicie sesión en la CLI de CloudHSM como administrador.

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

    1. Corrobore haber configurado la CLI de CloudHSM e iníciela con una conexión mTLS.

    2. Debe iniciar sesión como el usuario administrador predeterminado con el nombre de usuario como administrador antes de configurar la aplicación de mTLS.

  3. Use el comando Establecer el nivel de cumplimiento de mTLS con la CLI de CloudHSM para configurar la aplicación. Para obtener más información, consulte el siguiente ejemplo o utilice el comando help cluster mtls set-enforcement.

    ejemplo — Configure la aplicación de los mTLS con un clúster AWS CloudHSM

    En el siguiente ejemplo, se muestra cómo se usa el comando cluster mtls set-enforcement en la CLI de CloudHSM para establecer la aplicación de mTLS con el HSM. Para usar este comando, el administrador con nombre usuario como administrador debe iniciar sesión en el HSM.

    aws-cloudhsm > cluster mtls set-enforcement --level cluster { "error_code": 0, "data": { "message": "Mtls enforcement level set to Cluster successfully" } }
    aviso

    Después de aplicar el uso de mTLS en el clúster, se eliminarán todas las conexiones existentes que no sean mTLS y solo podrá conectarse al clúster con certificados mTLS.