

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Use a Ferramenta de Geração e Edição de Manifestos da Microsoft (Mage.exe) com AWS CloudHSM para assinar arquivos
<a name="third-magetool"></a>

**nota**  
AWS CloudHSM suporta somente a ferramenta Mage de 64 bits incluída no SDK do Windows para .NET Framework 4.8.1 e versões posteriores.

Os tópicos a seguir fornecem uma visão geral de como usar [o Mage.exe](https://learn.microsoft.com/en-us/dotnet/framework/tools/mage-exe-manifest-generation-and-editing-tool) com AWS CloudHSM.

**Topics**
+ [Etapa 1: configurar os pré-requisitos](#magetool-prereqs)
+ [Etapa 2: criar um certificado de assinatura](#magetool-csr)
+ [Etapa 3: assinar um arquivo](#magetool-sign)

## Etapa 1: configurar os pré-requisitos
<a name="magetool-prereqs"></a>

Para usar o Microsoft Mage.exe com AWS CloudHSM, você precisa do seguinte:
+ Uma EC2 instância da Amazon executando um sistema operacional Windows
+ Uma autoridade de certificação (CA), auto-mantida ou estabelecida por um provedor terceirizado
+ Um AWS CloudHSM cluster ativo na mesma nuvem privada virtual (VPC) da sua EC2 instância, com pelo menos um HSM
+ Um usuário criptográfico (UC) para possuir e gerenciar chaves no cluster AWS CloudHSM 
+ Um arquivo não assinado ou executável
+ O Kit de desenvolvimento de software (SDK) do Microsoft Windows

**Para configurar os pré-requisitos para uso com o Mage.exe AWS CloudHSM**

1. Execute uma EC2 instância do Windows e um AWS CloudHSM cluster seguindo as instruções na seção [Introdução](getting-started.md) deste guia.

1. Se você quiser hospedar sua própria CA do Windows Server, conclua as etapas 1 e 2 em [Configurando o Windows Server como uma autoridade de certificação com AWS CloudHSM](win-ca-overview-sdk5.md). Caso contrário, use a sua CA terceirizada confiável publicamente.

1. Baixe e instale o SDK do Microsoft Windows para .NET Framework 4.8.1 ou posterior em sua EC2 instância do Windows:
   + [SDK 10 do Microsoft Windows](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)

   O executável `mage.exe` faz parte das ferramentas do SDK do Windows. O local de instalação padrão é:

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

Depois de concluir essas etapas, você pode usar o SDK do Microsoft Windows, seu AWS CloudHSM cluster e sua CA para [criar um certificado de assinatura](#magetool-csr).

## Etapa 2: criar um certificado de assinatura
<a name="magetool-csr"></a>

Agora que você instalou o SDK do Windows na sua EC2 instância, pode usá-lo para gerar uma solicitação de assinatura de certificado (CSR). A CSR é um certificado não assinado que você envia para a CA para assinatura. Neste exemplo, usamos o executável `certreq` incluído com o SDK do Windows para gerar a CSR.

**Para gerar uma CSR usando o executável certreq**

1. Conecte-se à sua EC2 instância do Windows. Para obter mais informações, consulte [Connect to Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows) no *Guia EC2 do usuário da Amazon*.

1. Crie um arquivo chamado `request.inf` com o conteúdo a seguir. Substitua as informações de `Subject` pelos detalhes da sua organização:

   ```
   [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 obter uma explicação de cada parâmetro, consulte a [Documentação da Microsoft](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1#BKMK_New).

1. Execute `certreq.exe` para gerar a CSR:

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

   Esse comando gera um novo par de chaves em seu AWS CloudHSM cluster e usa a chave privada para criar a CSR.

1. Envie a CSR à sua CA. Se estiver usando uma CA do Windows Server, siga estas etapas:

   1. Abra a ferramenta de CA:

      ```
      certsrv.msc
      ```

   1. Na nova janela, clique com o botão direito do mouse no nome do servidor da CA. Escolha **All Tasks (Todas as tarefas)** e depois escolha **Submit new request (Enviar nova solicitação)**.

   1. Navegue até o local de `request.csr` e escolha **Abrir**.

   1. Navegue até a pasta **Solicitações pendentes** expandindo o menu **CA do servidor**. Clique com o botão direito do mouse na solicitação que você acabou de criar e, em **Todas as tarefas**, escolha **Problema**.

   1. Acesse a pasta **Certificados emitidos**.

   1. Escolha **Open (Abrir)** para visualizar o certificado e depois escolha a guia **Details (Detalhes)**.

   1. Escolha **Copy to File (Copiar no arquivo)** para iniciar o Certificate Export Wizard (Assistente de exportação da CA). Salve o arquivo X.509 codificado por DER em um local seguro como `signedCertificate.cer`.

   1. Saia da ferramenta de CA e execute o comando a seguir para mover o arquivo do certificado para o armazenamento de certificados pessoais no Windows.

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

Agora, você pode usar o certificado importado para [assinar um arquivo](#magetool-sign).

## Etapa 3: assinar um arquivo
<a name="magetool-sign"></a>

Agora que tem a Mage.exe e seu certificado importado, você pode assinar um arquivo. Você precisa saber o hash SHA-1 do certificado ou a *impressão digital*. A impressão digital garante que a Mage.exe use apenas certificados verificados por AWS CloudHSM. Neste exemplo, usamos PowerShell para obter o hash do certificado.

**Para obter uma impressão digital do certificado e usá-lo para assinar um arquivo**

1. Acesse o diretório que contém `mage.exe`. O local padrão é:

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

1. Para criar um arquivo de aplicação de amostra usando Mage.exe, execute o seguinte comando:

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

1. Abra PowerShell como administrador e execute o seguinte comando:

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

   Copie os valores `Thumbprint`, `Key Container` e `Provider` do resultado.  
![O hash do certificado será exibido como impressão digital, contêiner de chaves e provedor na saída](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/images/certstore-my-certificate.png)

1. Assine seu arquivo executando o seguinte comando:

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

   Se o comando for bem-sucedido, PowerShell retornará uma mensagem de sucesso.

1. Para verificar a assinatura no arquivo, use o seguinte comando:

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