

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.

# Utilice el almacén de AWS CloudHSM claves con keytool mediante Client SDK 3
<a name="using_keystore_with_keytool"></a>

[ Keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) es una conocida utilidad de línea de comandos para tareas comunes de claves y certificados en los sistemas Linux. La documentación de AWS CloudHSM no ofrece un tutorial completo sobre keytool. En este artículo se explican los parámetros específicos que se deben utilizar con las distintas funciones de las herramientas clave cuando se utilizan AWS CloudHSM como fuente de confianza a través del almacén de AWS CloudHSM claves.

Cuando utilice keytool con el almacén de AWS CloudHSM claves, especifique los siguientes argumentos para cualquier comando de keytool:

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

Si desea crear un nuevo archivo de almacén de claves mediante el almacén de AWS CloudHSM claves, consulte. [Utilice el SDK 3 para el cliente AWS CloudHSM KeyStore AWS CloudHSM](alternative-keystore.md#using_cloudhsm_keystore) Si desea utilizar un almacén de claves existente, especifique el nombre (incluida la ruta) con el argumento keystore en keytool. Si especifica un archivo de almacén de claves que no existe en un comando de keytool, el almacén de AWS CloudHSM claves crea un nuevo archivo de almacén de claves.

# Cree nuevas AWS CloudHSM claves con la herramienta de teclas
<a name="create_key_keytool"></a>

Puede utilizar keytool para generar cualquier tipo de clave compatible con el SDK de AWS CloudHSM JCE. Vea la lista completa de claves junto con su longitud en el artículo de [claves admitidas](java-lib-supported.md#java-keys) de la biblioteca de Java.

**importante**  
Una clave generada a través de keytool se genera en el software y, a continuación, se importa AWS CloudHSM como una clave persistente y extraíble.

[Las instrucciones para crear claves no extraíbles directamente en el módulo de seguridad de hardware (HSM) y luego usarlas con keytool o Jarsigner se muestran en el ejemplo de código de Registrar claves preexistentes con Key Store. AWS CloudHSM](register-pre-existing-keys-with-keystore.md) Le recomendamos encarecidamente que genere las claves no exportables fuera de keytool y que después importe los certificados correspondientes en el almacén de claves. Si utiliza claves RSA o EC extraíbles a través de keytool y jarsigner, los proveedores exportan las claves y, a continuación, las utilizan localmente para las operaciones de firma. AWS CloudHSM 

Si tiene varias instancias de cliente conectadas al clúster de CloudHSM, tenga en cuenta que, aunque se importe un certificado en el almacén de claves de una instancia del cliente, los certificados no estarán disponibles automáticamente en otras instancias del cliente. Para registrar la clave y los certificados asociados en cada instancia del cliente, debe ejecutar una aplicación Java, tal y como se describe en [Generar una CSR con Keytool](generate_csr_using_keytool.md). Si lo desea, también puede realizar los cambios necesarios en un cliente y copiar el archivo de almacén de claves resultante en las demás instancias del cliente.

**Ejemplo 1: **generar una clave simétrica AES-256 y guardarla en un archivo de almacén de claves denominado “example\$1keystore.store” en el directorio de trabajo. Sustitúyala por *<secret label>* una etiqueta única.

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

**Ejemplo 2: **generar un par de claves RSA-2048 y guardarlo en un archivo de almacén de claves denominado “example\$1keystore.store” en el directorio de trabajo. *<RSA key pair label>*Sustitúyala por una etiqueta única.

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

**Ejemplo 3: **generar una clave ED p256 y guardarla en un archivo de almacén de claves denominado “example\$1keystore.store” en el directorio de trabajo. *<ec key pair label>*Sustitúyala por una etiqueta única.

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

Encontrará una lista de los [algoritmos de firma compatibles](java-lib-supported.md#java-sign-verify) en la biblioteca de Java.

# Elimine una AWS CloudHSM clave con keytool
<a name="delete_key_using_keytool"></a>

El almacén de AWS CloudHSM claves no admite la eliminación de claves. Para eliminar la clave, debe usar la `deleteKey` función de la herramienta AWS CloudHSM de línea de comandos,[Eliminar una AWS CloudHSM clave mediante KMU](key_mgmt_util-deleteKey.md).

# Genere una AWS CloudHSM CSR con keytool
<a name="generate_csr_using_keytool"></a>

Para tener la máxima flexibilidad al generar una solicitud de firma de certificado (CSR), utilice [Motor AWS CloudHSM dinámico OpenSSL para Client SDK 5](openssl-library.md). El comando siguiente utiliza keytool para generar una CSR de un par de claves con el 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/
```

**nota**  
Para poder utilizar un par de claves de keytool, ese par de claves debe tener una entrada en el archivo de almacén de claves especificado. Si desea utilizar un par de claves generado fuera de keytool, debe importar los metadatos de las claves y los certificados en el almacén de claves. Para obtener instrucciones sobre cómo importar los datos del almacén de claves, consulte [Importación de certificados intermedios y raíz al almacén de AWS CloudHSM claves mediante](import_cert_using_keytool.md) Keytool.

# Utilice la herramienta clave para importar certificados intermedios y raíz al almacén de claves AWS CloudHSM
<a name="import_cert_using_keytool"></a>

Para importar un certificado de CA AWS CloudHSM, debe habilitar la verificación de una cadena de certificados completa en un certificado recién importado. A continuación, se muestra un ejemplo del comando: 

```
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 conecta varias instancias de cliente a su AWS CloudHSM clúster, la importación de un certificado al almacén de claves de una instancia de cliente no hará que el certificado esté disponible automáticamente en otras instancias de cliente. Es necesario importar el certificado en cada instancia del cliente.

# Usa keytool para eliminar los certificados del almacén de AWS CloudHSM claves
<a name="delete_cert_using_keytool"></a>

El siguiente comando muestra un ejemplo de cómo eliminar un AWS CloudHSM certificado de un almacén de claves keytool de Java. 

```
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 conectas varias instancias de cliente a tu AWS CloudHSM clúster, eliminar un certificado del almacén de claves de una instancia de cliente no eliminará automáticamente el certificado de otras instancias de cliente. Es necesario eliminar el certificado en cada instancia de cliente.

# Importa un certificado que funcione al almacén de AWS CloudHSM claves mediante keytool
<a name="import_working_cert_using_keytool"></a>

Cuando se firma una solicitud de firma de certificado (CSR), es posible importarla en el almacén de claves de AWS CloudHSM y asociarla con el par de claves apropiado. Puede ver un ejemplo en el siguiente comando: 

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

El alias debe ser un par de claves con un certificado asociado del almacén de claves. Si la clave se genera fuera de keytool o en otra instancia del cliente, primero debe importar los metadatos de la clave y el certificado en el almacén de claves. Para obtener instrucciones sobre cómo importar los metadatos del certificado, consulte el ejemplo de código en Cómo [registrar claves preexistentes en el almacén de AWS CloudHSM claves](register-pre-existing-keys-with-keystore.md). 

Es necesario que la cadena de certificados se pueda verificar. Si no puede verificar el certificado, es posible que deba importar el certificado de firma (entidad de certificación) en el almacén de claves para poder verificar la cadena.

# Exporte un certificado AWS CloudHSM mediante keytool
<a name="export_cert_using_keytool"></a>

En el ejemplo siguiente, se genera un certificado en formato X.509 binario. Para exportar un certificado legible por humanos AWS CloudHSM, añada `-rfc` al `-exportcert` comando. 

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