

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.

# Crear un certificado de firma de código
<a name="ota-code-sign-cert"></a>

Para firmar digitalmente las imágenes de firmware, necesita un certificado de firma de código y una clave privada. Para realizar pruebas, puede crear un certificado autofirmado y una clave privada. Para entornos de producción, debe adquirir un certificado firmado a través de una entidad de certificación (CA) conocida.

Las distintas plataformas requieren diferentes tipos de certificados de firma de código. En las siguientes secciones se describe cómo crear certificados de firma de código para diferentes plataformas calificadas para FreeRTOS.

**Topics**
+ [

# Creación de un certificado de firma de código para el SF-LAUNCHXL de Texas Instruments CC3220
](ota-code-sign-cert-ti.md)
+ [

# Crear un certificado de firma de código para el Espressif ESP32
](ota-code-sign-cert-esp.md)
+ [

# Creación de un certificado de firma de código para Nordic nrf52840-dk
](ota-code-sign-cert-nordic.md)
+ [

# Creación de un certificado de firma de código para el simulador de Windows de FreeRTOS
](ota-code-sign-cert-win.md)
+ [

# Creación de un certificado de firma de código para hardware personalizado
](ota-code-sign-cert-other.md)

# Creación de un certificado de firma de código para el SF-LAUNCHXL de Texas Instruments CC3220
<a name="ota-code-sign-cert-ti"></a>

**importante**  <a name="deprecation-message"></a>
Esta integración de referencia está alojada en el repositorio de Amazon-FreeRTOS, que está en desuso. Recomendamos [empezar por aquí](freertos-getting-started-modular.md) al crear un nuevo proyecto. Si ya tiene un proyecto FreeRTOS existente basado en el repositorio Amazon FreeRTOS, ahora obsoleto, consulte [Guía de migración del repositorio Github de Amazon-FreeRTOS](github-repo-migration.md).

El kit de desarrollo Launchpad del microcontrolador inalámbrico SimpleLink Wi-Fi CC3220 SF admite dos cadenas de certificados para la firma de códigos de firmware:
+ Producción (certificado-catalogo)

  Para utilizar la cadena de certificados de producción, debe comprar un certificado de firma de código comercial y utilizar la [herramienta Uniflash de TI](http://www.ti.com/tool/UNIFLASH) para colocar la placa en el modo de producción.
+ Pruebas y desarrollo (certificado-sitio de pruebas) 

  La cadena de certificados de sitio de pruebas le permite probar actualizaciones OTA con un certificado de firma de código autofirmado.

Úselo AWS Command Line Interface para importar su certificado de firma de código, su clave privada y su cadena de certificados. AWS Certificate Manager Para obtener más información, consulte [ Instalación de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) en la *Guía del usuario de AWS Command Line Interface *.

[Descarga e instala la última versión del SimpleLink CC3220 SDK.](http://www.ti.com/tool/download/SIMPLELINK-CC3220-SDK) De forma predeterminada, los archivos que necesita se encuentran aquí:

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

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

Los certificados del SimpleLink CC3220 SDK están en formato DER. Para crear un certificado de firma de código autofirmado, debe convertirlo a formato PEM.

Siga estos pasos para crear un certificado de firma de código que esté vinculado a la jerarquía de certificados para parques infantiles de Texas Instruments y que cumpla con AWS Certificate Manager los criterios de firma de AWS IoT código.

**nota**  
Para crear un certificado de firma de código, instale [OpenSSL](https://www.openssl.org/) en su equipo. Después de instalar OpenSSL, asegúrese de que `openssl` se asigna al ejecutable de OpenSSL en el símbolo del sistema o el terminal entorno.

**Creación de un certificado de firma de código autofirmado**

1. Abra un símbolo del sistema o terminal con permisos de administrador.

1. En el directorio de trabajo, use el siguiente texto para crear un archivo llamado `cert_config.txt`. *test\$1signer@amazon.com*Sustitúyala por tu dirección de correo electrónico.

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

1. Cree una clave privada y una solicitud de firma 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. Convierta la clave privada de CA de la raíz de sitio de pruebas de Texas Instruments del formato DER al formato PEM.

   La clave privada de CA de raíz de sitio de pruebas de TI se encuentra aquí:

   `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. Convierta el certificado de CA de raíz de sitio de pruebas de Texas Instruments del formato DER al formato PEM.

   La clave privada del certificado de raíz de sitio de pruebas de TI se encuentra aquí:

   `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. Firme la CSR con la CA raíz de 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. Convierta su certificado de firma de código (`tisigner.crt.pem`) a formato DER: 

   ```
   openssl x509 -in tisigner.crt.pem -out tisigner.crt.der -outform DER
   ```
**nota**  
Puede escribir el certificado `tisigner.crt.der` en la placa de desarrollo de TI más tarde.

1. Importe el certificado de firma de código, la clave privada y la cadena de certificados a: 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 muestra un ARN para su certificado. Necesita este ARN al crear un trabajo de actualización OTA.
**nota**  
Este paso se ha escrito con el supuesto de que va a utilizar la firma de código AWS IoT para firmar las imágenes del firmware. Aunque se AWS IoT recomienda utilizar la firma de código para, puede firmar las imágenes del firmware manualmente.

# Crear un certificado de firma de código para el Espressif ESP32
<a name="ota-code-sign-cert-esp"></a>

**importante**  <a name="deprecation-message"></a>
Esta integración de referencia está alojada en el repositorio de Amazon-FreeRTOS, que está en desuso. Recomendamos [empezar por aquí](freertos-getting-started-modular.md) al crear un nuevo proyecto. Si ya tiene un proyecto FreeRTOS existente basado en el repositorio Amazon FreeRTOS, ahora obsoleto, consulte [Guía de migración del repositorio Github de Amazon-FreeRTOS](github-repo-migration.md).

Las ESP32 placas Espressif admiten un SHA-256 autofirmado con un certificado de firma de código ECDSA.

**nota**  
Para crear un certificado de firma de código, instale [OpenSSL](https://www.openssl.org/) en su equipo. Después de instalar OpenSSL, asegúrese de que `openssl` se asigna al ejecutable de OpenSSL en el símbolo del sistema o el terminal entorno.  
Úselo para importar su certificado de firma AWS Command Line Interface de código, su clave privada y su cadena de certificados. AWS Certificate Manager Para obtener información sobre cómo instalar el AWS CLI, consulte [Instalación](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) del. AWS CLI

1. En el directorio de trabajo, use el siguiente texto para crear un archivo llamado `cert_config.txt`. *test\$1signer@amazon.com*Sustitúyala por tu dirección de correo electrónico:

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

1. Cree una clave privada de firma 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. Cree un certificado de firma 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 el certificado de firma de código, la clave privada y la cadena de certificados a: AWS Certificate Manager

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

   Este comando muestra un ARN para su certificado. Necesita este ARN al crear un trabajo de actualización OTA.
**nota**  
Este paso se ha escrito con el supuesto de que va a utilizar la firma de código AWS IoT para firmar las imágenes del firmware. Aunque se AWS IoT recomienda utilizar la firma de código para, puede firmar las imágenes del firmware manualmente.

# Creación de un certificado de firma de código para Nordic nrf52840-dk
<a name="ota-code-sign-cert-nordic"></a>

**importante**  <a name="deprecation-message"></a>
Esta integración de referencia está alojada en el repositorio de Amazon-FreeRTOS, que está en desuso. Recomendamos [empezar por aquí](freertos-getting-started-modular.md) al crear un nuevo proyecto. Si ya tiene un proyecto FreeRTOS existente basado en el repositorio Amazon FreeRTOS, ahora obsoleto, consulte [Guía de migración del repositorio Github de Amazon-FreeRTOS](github-repo-migration.md).

El nrf52840-dk de Nordic admite un certificado de firma de código ECDSA autofirmado SHA256 .

**nota**  
Para crear un certificado de firma de código, instale [OpenSSL](https://www.openssl.org/) en su equipo. Después de instalar OpenSSL, asegúrese de que `openssl` se asigna al ejecutable de OpenSSL en el símbolo del sistema o el terminal entorno.  
Úselo para importar el certificado de AWS Command Line Interface firma de código, la clave privada y la cadena de certificados. AWS Certificate Manager Para obtener información sobre cómo instalar el AWS CLI, consulte [Instalación](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) del. AWS CLI

1. En el directorio de trabajo, use el siguiente texto para crear un archivo llamado `cert_config.txt`. *test\$1signer@amazon.com*Sustitúyala por tu dirección de correo electrónico:

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

1. Cree una clave privada de firma 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. Cree un certificado de firma 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 el certificado de firma de código, la clave privada y la cadena de certificados a: AWS Certificate Manager

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

   Este comando muestra un ARN para su certificado. Necesita este ARN al crear un trabajo de actualización OTA.
**nota**  
Este paso se ha escrito con el supuesto de que va a utilizar la firma de código AWS IoT para firmar las imágenes del firmware. Aunque se AWS IoT recomienda utilizar la firma de código para, puede firmar las imágenes del firmware manualmente.

# Creación de un certificado de firma de código para el simulador de Windows de FreeRTOS
<a name="ota-code-sign-cert-win"></a>

El simulador de Windows de FreeRTOS requiere un certificado de firma de código con una clave ECDSA P-256 y hash SHA-256 para realizar actualizaciones OTA. Si no dispone de un certificado de firma de código, siga estos pasos para crear uno.

**nota**  
Para crear un certificado de firma de código, instale [OpenSSL](https://www.openssl.org/) en su equipo. Después de instalar OpenSSL, asegúrese de que `openssl` se asigna al ejecutable de OpenSSL en el símbolo del sistema o el terminal entorno.  
Úselo AWS Command Line Interface para importar el certificado de firma de código, la clave privada y la cadena de certificados. AWS Certificate Manager Para obtener información sobre cómo instalar el AWS CLI, consulte [Instalación](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) del. AWS CLI

1. En el directorio de trabajo, use el siguiente texto para crear un archivo llamado `cert_config.txt`. *test\$1signer@amazon.com*Sustitúyala por tu dirección de correo electrónico:

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

1. Cree una clave privada de firma 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. Cree un certificado de firma 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 el certificado de firma de código, la clave privada y la cadena de certificados a: AWS Certificate Manager

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

   Este comando muestra un ARN para su certificado. Necesita este ARN al crear un trabajo de actualización OTA.
**nota**  
Este paso se ha escrito con el supuesto de que va a utilizar la firma de código AWS IoT para firmar las imágenes del firmware. Aunque se AWS IoT recomienda utilizar la firma de código para, puede firmar las imágenes del firmware manualmente.

# Creación de un certificado de firma de código para hardware personalizado
<a name="ota-code-sign-cert-other"></a>

Con el conjunto de herramientas adecuado, cree una clave privada y un certificado auto-firmado para su hardware.

Úselo AWS Command Line Interface para importar el certificado de firma de código, la clave privada y la cadena de certificados. AWS Certificate Manager Para obtener información sobre cómo instalar el AWS CLI, consulte [Instalación](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) del. AWS CLI

Tras crear el certificado de firma de código, puede usarlo AWS CLI para importarlo a ACM:

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

La salida de este comando muestra un ARN para su certificado. Necesita este ARN al crear un trabajo de actualización OTA.

ACM requiere que los certificados utilicen algoritmos y tamaños de claves específicos. Para obtener más información, consulte [Requisitos previos para la importación de certificados](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-prerequisites.html). Para obtener más información acerca de ACM, consulte [Importación de certificados a AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html).

Debe copiar, pegar y formatear el contenido de su certificado de firma de código en el archivo `vendors/vendor/boards/board/aws_demos/config_files/ota_demo_config.h` que forma parte del código de FreeRTOS que descargará más adelante.