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.
Uso de SDK 5 de cliente para la integración con Java Keytool y Jarsigner
AWS CloudHSM el almacén de claves es un almacén de claves JCE de uso especial que utiliza los certificados asociados a las claves de su HSM a través de herramientas de terceros, como y. keytool
jarsigner
AWS CloudHSM no almacena los certificados en el HSM, ya que los certificados son datos públicos y no confidenciales. El almacén de AWS CloudHSM claves almacena los certificados en un archivo local y los asigna a las claves correspondientes del HSM.
Cuando se utiliza el almacén de AWS CloudHSM claves para generar nuevas claves, no se genera ninguna entrada en el archivo del almacén de claves local; las claves se crean en el HSM. Del mismo modo, cuando utiliza el almacén de claves de AWS CloudHSM para buscar claves, la búsqueda se transfiere al HSM. Al almacenar los certificados en el almacén de AWS CloudHSM claves, el proveedor comprueba que existe un par de claves con el alias correspondiente en el HSM y, a continuación, asocia el certificado proporcionado al par de claves correspondiente.
Temas
Requisitos previos
Para usar el almacén de AWS CloudHSM claves, primero debe inicializar y configurar el AWS CloudHSM SDK de JCE.
Paso 1: Instalar JCE
Para instalar el JCE, incluidos los requisitos previos del AWS CloudHSM cliente, siga los pasos para instalar la biblioteca Java.
Paso 2: Agregar credenciales de inicio de sesión de HSM a variables de entorno
Configure las variables de entorno para que contengan las credenciales de inicio de sesión de HSM.
nota
El AWS CloudHSM JCE ofrece varias opciones de inicio de sesión. Para utilizar el almacén de AWS CloudHSM claves con aplicaciones de terceros, debe utilizar el inicio de sesión implícito con variables de entorno. Si desea utilizar el inicio de sesión explícito a través del código de la aplicación, debe crear su propia aplicación con el almacén de AWS CloudHSM claves. Para obtener información adicional, consulte el artículo sobre el uso del almacén de AWS CloudHSM claves.
Paso 3: Registrar el proveedor de JCE
Para registrar el proveedor de JCE en la CloudProvider configuración de Java, siga estos pasos:
-
Abra el archivo de configuración
java.security
en su instalación de Java para editarlo. -
En el archivo de configuración
java.security
, agreguecom.amazonaws.cloudhsm.jce.provider.CloudHsmProvider
como último proveedor. Por ejemplo, si hay nueve proveedores en el archivojava.security
, agregue el siguiente proveedor como último proveedor de la sección:security.provider.10=com.amazonaws.cloudhsm.jce.provider.CloudHsmProvider
nota
Añadir al AWS CloudHSM proveedor como prioridad más alta puede afectar negativamente al rendimiento del sistema, ya que se dará prioridad al AWS CloudHSM proveedor en las operaciones que puedan transferirse de forma segura al software. Como práctica recomendada, especifique siempre el proveedor que desea utilizar para una operación, ya sea el proveedor AWS CloudHSM o un proveedor basado en software.
nota
Especificar las opciones de línea de comandos -providerName
, -providerclass
y -providerpath
al generar claves mediante keytool con el almacén de claves de AWS CloudHSM puede provocar errores.
Uso del almacén de AWS CloudHSM claves con keytool
Keytool
Cuando utilice keytool con el almacén de AWS CloudHSM claves, especifique los siguientes argumentos para cualquier comando de keytool:
Si desea crear un nuevo archivo de almacén de claves mediante el almacén de AWS CloudHSM claves, consulte. Usando AWS 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.
Creación de nuevas claves con keytool
Puede usar keytool para generar cualquier tipo de claves RSA, AES y DESede admitidas por el SDK para JCE de AWS CloudHSM.
importante
Una clave generada mediante keytool se genera en el software y, a continuación, se importa AWS CloudHSM como una clave persistente y extraíble.
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 utilizas claves RSA o EC extraíbles a través de keytool y Jarsigner, los proveedores exportan las claves desde AWS CloudHSM y luego las utilizan localmente para las operaciones de firma.
Si tiene varias instancias de cliente conectadas a su AWS CloudHSM clúster, tenga en cuenta que al importar un certificado al almacén de claves de una instancia de cliente, los certificados no estarán disponibles automáticamente en otras instancias de 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 Generación de CSR con keytool. 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 AES-256 simétrica y guardarla en un archivo de almacén de claves llamado «my_keystore.store» del directorio de trabajo. Reemplace <secret label>
por una etiqueta única.
Ejemplo 2: generar un par de claves RSA 2048 y guardarlo en un archivo de almacén de claves llamado “my_keystore.store” en el directorio de trabajo. Reemplace <RSA key pair label>
por una etiqueta única.
Encontrará una lista de los algoritmos de firma compatibles en la biblioteca de Java.
Eliminación de claves con keytool
El almacén de AWS CloudHSM claves no admite la eliminación de claves. Puede borrar las claves mediante el método de eliminación de la interfaz Destroyable
((Destroyable) key).destroy();
Generación de CSR con keytool
Para tener la máxima flexibilidad al generar una solicitud de firma de certificado (CSR), utilice Motor dinámico de OpenSSL. El comando siguiente utiliza keytool para generar una CSR de un par de claves con el alias my-key-pair
.
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 la importación de los datos del almacén de claves, consulte Uso de keytool para importar certificados intermedios y raíz al almacén de AWS CloudHSM claves .
Uso de keytool para importar certificados intermedios y raíz al almacén de AWS CloudHSM claves
Para importar un certificado de CA, 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:
Si conectas varias instancias de cliente a tu 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.
Uso de keytool para eliminar certificados del almacén de AWS CloudHSM claves
En el comando siguiente, se muestra un ejemplo de cómo se elimina un certificado de un almacén de claves de keytool para Java.
Si conectas varias instancias de cliente a tu AWS CloudHSM clúster, al eliminar un certificado del almacén de claves de una instancia de cliente, no se eliminará automáticamente el certificado de otras instancias de cliente. Es necesario eliminar el certificado en cada instancia de cliente.
Importación de un certificado en funcionamiento al almacén de AWS CloudHSM claves mediante keytool
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:
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.
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.
Exportación de certificados mediante keytool
En el ejemplo siguiente, se genera un certificado en formato X.509 binario. Para exportar un certificado en un formato legible, añada -rfc
en el comando -exportcert
.
Uso del almacén de AWS CloudHSM claves con Jarsigner
Jarsigner es una popular utilidad de línea de comandos para firmar archivos JAR mediante una clave almacenada de forma segura en un HSM. La documentación de AWS CloudHSM no ofrece un tutorial completo sobre Jarsigner. En esta sección, se explican los parámetros de Jarsigner que debe utilizar para firmar y verificar las firmas AWS CloudHSM como fuente de confianza en el almacén de claves. AWS CloudHSM
Configuración de claves y certificados
Para poder firmar archivos JAR con Jarsigner, no olvide configurar o completar los siguientes pasos:
-
Siga las instrucciones de los requisitos previos del almacén de claves de AWS CloudHSM.
-
Configure las claves de firma y los certificados y la cadena de certificados asociados, que deben almacenarse en el almacén de AWS CloudHSM claves de la instancia de servidor o cliente actual. Cree las claves AWS CloudHSM y, a continuación, importe los metadatos asociados a su almacén de AWS CloudHSM claves. Si desea utilizar keytool para configurar las claves y los certificados, consulte Creación de nuevas claves con keytool. Si utiliza varias instancias de cliente para firmar los JAR, cree la clave e importe la cadena de certificados. A continuación, copie el archivo de almacén de claves resultante en cada instancia del cliente. Si genera nuevas claves con frecuencia, es posible que le resulte más fácil importar los certificados individualmente en cada instancia del cliente.
-
Toda la cadena de certificados debe ser verificable. Para que la cadena de certificados sea verificable, es posible que deba agregar el certificado de CA y los certificados intermedios al almacén de AWS CloudHSM claves. Consulte el fragmento de código en Firmar un archivo JAR con AWS CloudHSM y Jarsigner para obtener instrucciones acerca de cómo utilizar código Java para verificar la cadena de certificados. Si lo prefiere, puede utilizar keytool para importar los certificados. Para obtener instrucciones sobre cómo utilizar keytool, consulte Uso de keytool para importar certificados intermedios y raíz al almacén de AWS CloudHSM claves .
Firmar un archivo JAR con AWS CloudHSM y Jarsigner
Utilice el siguiente comando para firmar un archivo JAR:
Utilice el siguiente comando para verificar un JAR firmado:
Problemas conocidos
-
No admitimos las claves EC con Keytool y Jarsigner.