

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为 Espressif 创建代码签名证书 ESP32


**重要**  <a name="deprecation-message"></a>
该参考集成托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时，我们建议[从此处开始](freertos-getting-started-modular.md)。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目，请参阅 [Amazon-FreeRTOS Github 存储库迁移指南](github-repo-migration.md)。

乐鑫 ESP32 主板支持带有 ECDSA 代码签名证书的自签名 SHA-256。

**注意**  
要创建代码签名证书，请在计算机上安装 [OpenSSL](https://www.openssl.org/)。安装 OpenSSL 后，请确保将 `openssl` 分配给命令提示符或终端环境中的 OpenSSL 可执行文件。  
使用 AWS Command Line Interface 将您的代码签名证书、私钥和证书链导入。 AWS Certificate Manager有关安装的信息 AWS CLI，请参阅[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)。

1. 在工作目录中，使用以下文本创建名为 `cert_config.txt` 的文件。*test\$1signer@amazon.com*用您的电子邮件地址替换：

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

1. 创建 ECDSA 代码签名私有密钥：

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

1. 创建 ECDSA 代码签名证书：

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

1. 将代码签名证书、私钥和证书链导入： AWS Certificate Manager

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

   此命令显示了证书的 ARN。在创建 OTA 更新作业时需要此 ARN。
**注意**  
编写此步骤时假设您将使用代码签名对固件映像 AWS IoT 进行签名。尽管建议使用代码签名， AWS IoT 但您可以手动对固件映像进行签名。