

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 la herramienta de generación y edición de manifiestos de Microsoft (Mage.exe) con AWS CloudHSM para firmar archivos
<a name="third-magetool"></a>

**nota**  
AWS CloudHSM solo admite la herramienta Mage de 64 bits incluida en el SDK de Windows para .NET Framework 4.8.1 y versiones posteriores.

En los temas siguientes se proporciona información general sobre cómo utilizarla [ Mage.exe ](https://learn.microsoft.com/en-us/dotnet/framework/tools/mage-exe-manifest-generation-and-editing-tool)con AWS CloudHSM.

**Topics**
+ [Paso 1: configurar los requisitos previos](#magetool-prereqs)
+ [Paso 2: crear un certificado de firma](#magetool-csr)
+ [Paso 3: firmar un archivo](#magetool-sign)

## Paso 1: configurar los requisitos previos
<a name="magetool-prereqs"></a>

Para usar Microsoft Mage.exe con AWS CloudHSM, necesitas lo siguiente:
+ Una instancia de Amazon EC2 que ejecute un sistema operativo Windows.
+ Una autoridad de certificación (CA), ya sea autoadministrada o de un proveedor externo.
+ Un AWS CloudHSM clúster activo en la misma nube privada virtual (VPC) que la instancia EC2, con al menos un HSM
+ Un usuario criptográfico (CU) para poseer y administrar las claves del clúster AWS CloudHSM 
+ Un archivo o ejecutable sin firmar
+ El kit de desarrollo de software (SDK) de Microsoft Windows

**Para configurar los requisitos previos de uso AWS CloudHSM con Mage.exe**

1. Inicie una instancia EC2 de Windows y un AWS CloudHSM clúster siguiendo las instrucciones de la sección [Introducción](getting-started.md) de esta guía.

1. Si desea alojar su propia CA de Windows Server, complete los pasos 1 y 2 de la [sección Configuración de Windows Server como entidad emisora de certificados con AWS CloudHSM](win-ca-overview-sdk5.md). De lo contrario, utilice la CA de terceros de confianza pública.

1. Descargue e instale el SDK de Microsoft Windows para .NET Framework 4.8.1 o una versión posterior en la instancia de Windows EC2.
   + [Microsoft Windows SDK 10](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)

   El ejecutable `mage.exe` forma parte de las herramientas del SDK de Windows. La ubicación de instalación predeterminada es:

   ```
   C:\Program Files (x86)\Windows Kits\{{<SDK version>}}\bin\{{<version number>}}\x64\Mage.exe
   ```

Tras completar estos pasos, puede usar el SDK de Microsoft Windows, su AWS CloudHSM clúster y su CA para [crear un certificado de firma](#magetool-csr).

## Paso 2: crear un certificado de firma
<a name="magetool-csr"></a>

Ahora que ha instalado el SDK de Windows en la instancia de EC2, puede usarlo para generar una solicitud de firma de certificado (CSR). La CSR es un certificado sin firmar que envía a la CA para que lo firme. En este ejemplo, usamos el ejecutable `certreq` incluido con el SDK de Windows para generar la CSR.

**Para generar una CSR con el ejecutable certreq**

1. Conéctese a la instancia de Windows EC2. Para obtener más información, consulte [Conexión a una instancia](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows) en la *Guía del usuario de Amazon EC2*.

1. Cree un archivo llamado `request.inf` con el siguiente contenido. Reemplace la información de `Subject` por los datos de la organización:

   ```
   [Version]
   Signature= $Windows NT$
   [NewRequest]
   Subject = "C={{<Country>}},CN={{<www.website.com>}},O={{<Organization>}},OU={{<Organizational-Unit>}},L={{<City>}},S={{<State>}}"
   RequestType=PKCS10
   HashAlgorithm = SHA256
   KeyAlgorithm = RSA
   KeyLength = 2048
   ProviderName = "CloudHSM Key Storage Provider"
   KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE"
   MachineKeySet = True
   Exportable = False
   ```

   Para ver una explicación de cada uno de los parámetros, consulte la [documentación de Microsoft](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1#BKMK_New).

1. Ejecute `certreq.exe` para generar la CSR:

   ```
   certreq.exe -new request.inf request.csr
   ```

   Este comando genera un nuevo key pair en el AWS CloudHSM clúster y utiliza la clave privada para crear la CSR.

1. Envíe la CSR a su CA. Si utiliza una CA de Windows Server, siga estos pasos:

   1. Abra la herramienta de la CA:

      ```
      certsrv.msc
      ```

   1. En la ventana nueva, haga clic con el botón derecho del ratón en el nombre del servidor de la CA. Elija **Todas las tareas y**, a continuación, elija **Enviar solicitud nueva**.

   1. Vaya a la ubicación de `request.csr` y seleccione **Abrir**.

   1. Expanda el menú **Server CA** y navegue hasta la carpeta de **solicitudes pendientes**. Right-click la solicitud que acaba de crear, elija **Todas las tareas** y, a continuación, elija **Emitir**.

   1. Vaya a la carpeta **Certificados emitidos**.

   1. Elija **Abrir** para ver el certificado y, a continuación, elija la pestaña **Detalles**.

   1. Elija **Copiar en archivo** para iniciar el Asistente para exportación de certificados. Guarda el DER-encoded X.509 archivo en una ubicación segura como`signedCertificate.cer`.

   1. Salga de la herramienta de la CA y ejecute el siguiente comando para mover el archivo del certificado al almacén de certificados Personal en Windows.

      ```
      certreq.exe -accept signedCertificate.cer
      ```

Ahora puede usar el certificado importado para [firmar un archivo](#magetool-sign).

## Paso 3: firmar un archivo
<a name="magetool-sign"></a>

Ahora que ya tiene Mage.exe su certificado importado, puede firmar un archivo. Necesita saber el SHA-1 hash o *huella digital* del certificado. La huella digital garantiza que Mage.exe solo se utilicen certificados verificados por. AWS CloudHSM En este ejemplo, utilizamos PowerShell para obtener el hash del certificado.

**Para obtener la huella digital de un certificado y utilizarla para firmar un archivo**

1. Vaya al directorio que contiene `mage.exe`. La ubicación predeterminada es:

   ```
   C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools\x64
   ```

1. Para crear un archivo de aplicación de muestra mediante Mage.exe, ejecute el siguiente comando:

   ```
   mage.exe -New Application -ToFile C:\Users\Administrator\Desktop\sample.application
   ```

1.  PowerShell Ábralo como administrador y ejecute el siguiente comando:

   ```
   Get-ChildItem -path cert:\LocalMachine\My
   ```

   Copie los valores `Thumbprint`, `Key Container` y `Provider` desde la salida.  
![El hash del certificado se mostrará como la huella digital, el contenedor de claves y el proveedor en la salida](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/images/certstore-my-certificate.png)

1. Firme el archivo mediante la ejecución del siguiente comando:

   ```
   mage.exe -Sign -CertHash {{<thumbprint>}} -KeyContainer {{<keycontainer>}} -CryptoProvider {{<CloudHSM Key Storage Provider/Cavium Key Storage Provider>}} C:\Users\Administrator\Desktop\{{<sample.application>}}
   ```

   Si el comando se ejecuta correctamente, PowerShell devuelve un mensaje de éxito.

1. Para verificar la firma del archivo, use el siguiente comando:

   ```
   mage.exe -Verify -CryptoProvider {{<CloudHSM Key Storage Provider/Cavium Key Storage Provider>}} C:\Users\Administrator\Desktop\{{<sample.application>}}
   ```