

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á.

# Criação de um certificado de assinatura de código
<a name="ota-code-sign-cert"></a>

Para assinar digitalmente imagens de firmware, você precisa de um certificado de assinatura de código e uma chave privada. Para fins de teste, você pode criar um certificado autoassinado e uma chave privada. Para ambientes de produção, adquira um certificado por meio de uma autoridade de certificação (AC) reconhecida.

Plataformas diferentes exigem tipos diferentes de certificados de assinatura de código. A seção a seguir descreve como criar certificados de assinatura de código para diferentes plataformas qualificadas para o FreeRTOS.

**Topics**
+ [Criação de um certificado de assinatura de código para o Texas Instruments SF-LAUNCHXL CC3220](ota-code-sign-cert-ti.md)
+ [Criação de um certificado de assinatura de código para o Espressif ESP32](ota-code-sign-cert-esp.md)
+ [Criação de um certificado de assinatura de código para Nordic nrf52840-dk](ota-code-sign-cert-nordic.md)
+ [Criação de um certificado de assinatura de código para o simulador do Windows do FreeRTOS](ota-code-sign-cert-win.md)
+ [Criação de um certificado de assinatura de código para o hardware personalizado](ota-code-sign-cert-other.md)

# Criação de um certificado de assinatura de código para o Texas Instruments SF-LAUNCHXL CC3220
<a name="ota-code-sign-cert-ti"></a>

**Importante**  <a name="deprecation-message"></a>
Essa integração de referência está hospedada no repositório Amazon-FreeRTOS, que está preterido. Recomendamos [começar aqui](freertos-getting-started-modular.md) ao criar um novo projeto. Se você já tem um projeto FreeRTOS existente baseado no repositório Amazon-FreeRTOS que está preterido, consulte o [Guia de migração do repositório Github do Amazon FreeRTOS](github-repo-migration.md).

O kit de desenvolvimento do microcontrolador sem fio SimpleLink Wi-Fi CC3220 SF Launchpad suporta duas cadeias de certificados para assinatura de código de firmware:
+ Produção (certificado-catálogo)

  Para usar a cadeia de certificados de produção, você deve adquirir um certificado de assinatura de código comercial e usar a [Ferramenta TI Uniflash](http://www.ti.com/tool/UNIFLASH) para definir a placa para o modo de produção.
+ Teste e desenvolvimento (certificado-playground) 

  A cadeia de certificados do playground permite experimentar as atualizações OTA com um certificado de assinatura de código autoassinado.

Use o AWS Command Line Interface para importar seu certificado de assinatura de código, chave privada e cadeia de certificados para. AWS Certificate Manager Para obter mais informações, consulte [ Instalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) no *Guia do usuário da AWS Command Line Interface *.

Baixe e instale a versão mais recente do [SimpleLink CC3220 SDK.](http://www.ti.com/tool/download/SIMPLELINK-CC3220-SDK) Por padrão, os arquivos necessários estão localizados aqui:

`C:\ti\simplelink_cc32xx_sdk_version\tools\cc32xx_tools\certificate-playground` (Windows) 

`/Applications/Ti/simplelink_cc32xx_version/tools/cc32xx_tools/certificate-playground` (macOS)

Os certificados no SimpleLink CC3220 SDK estão no formato DER. Para criar um certificado de assinatura de código autoassinado, você deve convertê-lo para o formato PEM.

Siga estas etapas para criar um certificado de assinatura de código vinculado à hierarquia de certificados do playground da Texas Instruments e que AWS Certificate Manager atenda aos critérios de Assinatura de Código. AWS IoT 

**nota**  
Para criar um certificado de assinatura de código, é necessário instalar o [OpenSSL](https://www.openssl.org/) na máquina. Depois de instalar o OpenSSL, verifique se `openssl` está atribuído ao executável do OpenSSL no prompt de comando ou ambiente de terminal.

**Como criar um certificado de assinatura de código autoassinado**

1. Abra um terminal ou prompt de comando com permissões de administrador.

1. No diretório de trabalho, use o texto a seguir para criar um arquivo chamado `cert_config.txt`. *test\$1signer@amazon.com*Substitua pelo seu endereço de e-mail.

   ```
   [ req ]
   prompt             = no
   distinguished_name = my dn
   
   [ my dn ]
   commonName = test_signer@amazon.com
   
   [ my_exts ]
   keyUsage         = digitalSignature
   extendedKeyUsage = codeSigning
   ```

1. Crie uma chave privada e uma solicitação de assinatura de certificado (CSR):

   ```
   openssl req -config cert_config.txt -extensions my_exts -nodes -days 365 -newkey rsa:2048 -keyout tisigner.key -out tisigner.csr
   ```

1. Converta a chave privada da CA raiz do playground do Texas Instruments do formato DER para o formato PEM.

   A chave privada da CA raiz do playground do TI está localizada aqui:

   `C:\ti\simplelink_cc32xx_sdk_version\tools\cc32xx_tools\certificate-playground\dummy-root-ca-cert-key` (Windows) 

   `/Applications/Ti/simplelink_cc32xx_sdk_version/tools/cc32xx_tools/certificate-playground/dummy-root-ca-cert-key` (macOS)

   ```
   openssl rsa -inform DER -in dummy-root-ca-cert-key -out dummy-root-ca-cert-key.pem
   ```

1. Converta o certificado da CA raiz do playground do Texas Instruments do formato DER para o formato PEM.

   O certificado raiz do playground do TI está localizada aqui:

   `C:\ti\simplelink_cc32xx_sdk_version\tools\cc32xx_tools\certificate-playground/dummy-root-ca-cert` (Windows) 

   `/Applications/Ti/simplelink_cc32xx_sdk_version/tools/cc32xx_tools/certificate-playground/dummy-root-ca-cert` (macOS)

   ```
   openssl x509 -inform DER -in dummy-root-ca-cert -out dummy-root-ca-cert.pem
   ```

1. Assine o CSR com a CA raiz do Texas Instruments:

   ```
   openssl x509 -extfile cert_config.txt -extensions my_exts  -req -days 365 -in tisigner.csr -CA dummy-root-ca-cert.pem -CAkey dummy-root-ca-cert-key.pem -set_serial 01 -out tisigner.crt.pem -sha1
   ```

1. Converta seu código de assinatura de certificado (`tisigner.crt.pem`) para o formato DER: 

   ```
   openssl x509 -in tisigner.crt.pem -out tisigner.crt.der -outform DER
   ```
**nota**  
Você escreve o certificado `tisigner.crt.der` na placa de desenvolvimento do TI mais tarde.

1. Importe o certificado de assinatura de código, a chave privada e a cadeia de certificados para: AWS Certificate Manager

   ```
   aws acm import-certificate --certificate fileb://tisigner.crt.pem --private-key fileb://tisigner.key --certificate-chain fileb://dummy-root-ca-cert.pem
   ```

   Este comando exibe um ARN para o seu certificado. Você precisa deste ARN quando cria um trabalho de atualização OTA.
**nota**  
Esta etapa foi escrita com a suposição de que você usará a Assinatura de Código AWS IoT para assinar suas imagens de firmware. Embora o uso do Code Signing AWS IoT for seja recomendado, você pode assinar suas imagens de firmware manualmente.

# Criação de um certificado de assinatura de código para o Espressif ESP32
<a name="ota-code-sign-cert-esp"></a>

**Importante**  <a name="deprecation-message"></a>
Essa integração de referência está hospedada no repositório Amazon-FreeRTOS, que está preterido. Recomendamos [começar aqui](freertos-getting-started-modular.md) ao criar um novo projeto. Se você já tem um projeto FreeRTOS existente baseado no repositório Amazon-FreeRTOS que está preterido, consulte o [Guia de migração do repositório Github do Amazon FreeRTOS](github-repo-migration.md).

As ESP32 placas Espressif suportam um SHA-256 autoassinado com certificado de assinatura de código ECDSA.

**nota**  
Para criar um certificado de assinatura de código, é necessário instalar o [OpenSSL](https://www.openssl.org/) na máquina. Depois de instalar o OpenSSL, verifique se `openssl` está atribuído ao executável do OpenSSL no prompt de comando ou ambiente de terminal.  
Use o AWS Command Line Interface para importar seu certificado de assinatura de código, chave privada e cadeia de certificados para. AWS Certificate Manager Para obter informações sobre a instalação do AWS CLI, consulte [Instalando AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) o.

1. No diretório de trabalho, use o texto a seguir para criar um arquivo chamado `cert_config.txt`. *test\$1signer@amazon.com*Substitua pelo seu endereço de e-mail:

   ```
   [ req ]
   prompt             = no
   distinguished_name = my_dn
                       
   [ my_dn ]
   commonName = test_signer@amazon.com
                       
   [ my_exts ]
   keyUsage         = digitalSignature
   extendedKeyUsage = codeSigning
   ```

1. Crie uma chave privada de assinatura de código ECDSA:

   ```
   openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -pkeyopt ec_param_enc:named_curve -outform PEM -out ecdsasigner.key
   ```

1. Crie um certificado de assinatura de código ECDSA:

   ```
   openssl req -new -x509 -config cert_config.txt -extensions my_exts -nodes -days 365 -key ecdsasigner.key -out ecdsasigner.crt
   ```

1. Importe o certificado de assinatura de código, a chave privada e a cadeia de certificados para: AWS Certificate Manager

   ```
   aws acm import-certificate --certificate fileb://ecdsasigner.crt --private-key fileb://ecdsasigner.key
   ```

   Este comando exibe um ARN para o seu certificado. Você precisa deste ARN quando cria um trabalho de atualização OTA.
**nota**  
Esta etapa foi escrita com a suposição de que você usará a Assinatura de Código AWS IoT para assinar suas imagens de firmware. Embora o uso do Code Signing AWS IoT for seja recomendado, você pode assinar suas imagens de firmware manualmente.

# Criação de um certificado de assinatura de código para Nordic nrf52840-dk
<a name="ota-code-sign-cert-nordic"></a>

**Importante**  <a name="deprecation-message"></a>
Essa integração de referência está hospedada no repositório Amazon-FreeRTOS, que está preterido. Recomendamos [começar aqui](freertos-getting-started-modular.md) ao criar um novo projeto. Se você já tem um projeto FreeRTOS existente baseado no repositório Amazon-FreeRTOS que está preterido, consulte o [Guia de migração do repositório Github do Amazon FreeRTOS](github-repo-migration.md).

O Nordic nrf52840-dk suporta um certificado autoassinado com assinatura de código ECDSA. SHA256 

**nota**  
Para criar um certificado de assinatura de código, instale o [OpenSSL](https://www.openssl.org/) na máquina. Depois de instalar o OpenSSL, verifique se `openssl` está atribuído ao executável do OpenSSL no prompt de comando ou ambiente de terminal.  
Use o AWS Command Line Interface para importar seu certificado de assinatura de código, chave privada e cadeia de certificados para. AWS Certificate Manager Para obter informações sobre a instalação do AWS CLI, consulte [Instalando AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) o.

1. No diretório de trabalho, use o texto a seguir para criar um arquivo chamado `cert_config.txt`. *test\$1signer@amazon.com*Substitua pelo seu endereço de e-mail:

   ```
   [ req ]
   prompt             = no
   distinguished_name = my_dn
                       
   [ my_dn ]
   commonName = test_signer@amazon.com
                       
   [ my_exts ]
   keyUsage         = digitalSignature
   extendedKeyUsage = codeSigning
   ```

1. Crie uma chave privada de assinatura de código ECDSA:

   ```
   openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -pkeyopt ec_param_enc:named_curve -outform PEM -out ecdsasigner.key
   ```

1. Crie um certificado de assinatura de código ECDSA:

   ```
   openssl req -new -x509 -config cert_config.txt -extensions my_exts -nodes -days 365 -key ecdsasigner.key -out ecdsasigner.crt
   ```

1. Importe o certificado de assinatura de código, a chave privada e a cadeia de certificados para: AWS Certificate Manager

   ```
   aws acm import-certificate --certificate fileb://ecdsasigner.crt --private-key fileb://ecdsasigner.key
   ```

   Este comando exibe um ARN para o seu certificado. Você precisa deste ARN quando cria um trabalho de atualização OTA.
**nota**  
Esta etapa foi escrita com a suposição de que você usará a Assinatura de Código AWS IoT para assinar suas imagens de firmware. Embora o uso do Code Signing AWS IoT for seja recomendado, você pode assinar suas imagens de firmware manualmente.

# Criação de um certificado de assinatura de código para o simulador do Windows do FreeRTOS
<a name="ota-code-sign-cert-win"></a>

O simulador do Windows do FreeRTOS exige um certificado de assinatura de código com uma chave ECDSA P-256 e o hash SHA-256 para executar atualizações OTA. Se você não tiver um certificado de assinatura de código, siga estas etapas para criar um:

**nota**  
Para criar um certificado de assinatura de código, é necessário instalar o [OpenSSL](https://www.openssl.org/) na máquina. Depois de instalar o OpenSSL, verifique se `openssl` está atribuído ao executável do OpenSSL no prompt de comando ou ambiente de terminal.  
Use o AWS Command Line Interface para importar seu certificado de assinatura de código, chave privada e cadeia de certificados para. AWS Certificate Manager Para obter informações sobre a instalação do AWS CLI, consulte [Instalando AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) o.

1. No diretório de trabalho, use o texto a seguir para criar um arquivo chamado `cert_config.txt`. *test\$1signer@amazon.com*Substitua pelo seu endereço de e-mail:

   ```
   [ req ]
   prompt             = no
   distinguished_name = my_dn
                       
   [ my_dn ]
   commonName = test_signer@amazon.com
                       
   [ my_exts ]
   keyUsage         = digitalSignature
   extendedKeyUsage = codeSigning
   ```

1. Crie uma chave privada de assinatura de código ECDSA:

   ```
   openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -pkeyopt ec_param_enc:named_curve -outform PEM -out ecdsasigner.key
   ```

1. Crie um certificado de assinatura de código ECDSA:

   ```
   openssl req -new -x509 -config cert_config.txt -extensions my_exts -nodes -days 365 -key ecdsasigner.key -out ecdsasigner.crt
   ```

1. Importe o certificado de assinatura de código, a chave privada e a cadeia de certificados para: AWS Certificate Manager

   ```
   aws acm import-certificate --certificate fileb://ecdsasigner.crt --private-key fileb://ecdsasigner.key
   ```

   Este comando exibe um ARN para o seu certificado. Você precisa deste ARN quando cria um trabalho de atualização OTA.
**nota**  
Esta etapa foi escrita com a suposição de que você usará a Assinatura de Código AWS IoT para assinar suas imagens de firmware. Embora o uso do Code Signing AWS IoT for seja recomendado, você pode assinar suas imagens de firmware manualmente.

# Criação de um certificado de assinatura de código para o hardware personalizado
<a name="ota-code-sign-cert-other"></a>

Usando um conjunto de ferramentas apropriado, crie um certificado autoassinado e uma chave privada para o hardware.

Use o AWS Command Line Interface para importar seu certificado de assinatura de código, chave privada e cadeia de certificados para. AWS Certificate Manager Para obter informações sobre a instalação do AWS CLI, consulte [Instalando AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) o.

Depois de criar seu certificado de assinatura de código, você pode usar o AWS CLI para importá-lo para o ACM:

```
aws acm import-certificate --certificate fileb://code-sign.crt --private-key fileb://code-sign.key
```

A saída desse comando exibe um ARN para o seu certificado. Você precisa deste ARN quando cria um trabalho de atualização OTA.

O ACM exige certificados para usar algoritmos e tamanhos de chaves específicos. Para obter mais informações, consulte [Pré-requisitos para importar certificados](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-prerequisites.html). Para obter mais informações sobre o ACM, consulte [Importação de certificados para o AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html).

Você deve copiar, colar e formatar o conteúdo do certificado de assinatura de código no arquivo `vendors/vendor/boards/board/aws_demos/config_files/ota_demo_config.h` que faz parte do código do FreeRTOS que você obterá por download posteriormente.