

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

# 为德州仪器 SF-LAUNCHXL 创建代码签名证书 CC3220
<a name="ota-code-sign-cert-ti"></a>

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

 SimpleLink Wi-Fi CC3220 SF 无线微控制器 Launchpad 开发套件支持两个用于固件代码签名的证书链：
+ 生产 (certificate-catalog)

  要使用生产证书链，必须购买商用代码签名证书，并使用 [TI Uniflash 工具](http://www.ti.com/tool/UNIFLASH)将主板设置为生产模式。
+ 测试和开发 (certificate-playground) 

  Playground 证书链允许您使用自签名代码签名证书试用 OTA 更新。

使用 AWS Command Line Interface 将您的代码签名证书、私钥和证书链导入。 AWS Certificate Manager有关更多信息，请参阅AWS Command Line Interface 《用户指南》**中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)。

下载并安装最新版本的 [SimpleLink CC3220 SDK](http://www.ti.com/tool/download/SIMPLELINK-CC3220-SDK)。默认情况下，所需的文件位于以下位置：

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

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

 SimpleLink CC3220 软件开发工具包中的证书采用 DER 格式。要创建自签名代码签名证书，必须将其转换为 PEM 格式。

按照以下步骤创建代码签名证书，该证书链接到德州仪器 playground 证书层次结构 AWS Certificate Manager 并符合标准的 AWS IoT 代码签名。

**注意**  
要创建代码签名证书，请在计算机上安装 [OpenSSL](https://www.openssl.org/)。安装 OpenSSL 后，请确保将 `openssl` 分配给命令提示符或终端环境中的 OpenSSL 可执行文件。

**创建自签名代码签名证书**

1. 使用管理员权限打开命令提示符或终端。

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. 创建私有密钥和证书签名请求 (CSR)：

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

1. 将 Texas Instruments 操场根 CA 私有密钥从 DER 格式转换为 PEM 格式。

   TI 操场根 CA 私有密钥位于以下位置：

   `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. 将 Texas Instruments 操场根 CA 证书从 DER 格式转换为 PEM 格式。

   TI 操场根证书位于以下位置：

   `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. 使用 Texas Instruments 根 CA 对 CSR 进行签名：

   ```
   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. 将代码签名证书 (`tisigner.crt.pem`) 转换为 DER 格式：

   ```
   openssl x509 -in tisigner.crt.pem -out tisigner.crt.der -outform DER
   ```
**注意**  
稍后可将 `tisigner.crt.der` 证书写入到 TI 开发主板上。

1. 将代码签名证书、私钥和证书链导入： 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
   ```

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