

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 Nordic nrf52840-dk 建立程式碼簽署憑證
<a name="ota-code-sign-cert-nordic"></a>

**重要**  <a name="deprecation-message"></a>
此參考整合託管在已棄用的 Amazon-FreeRTOS 儲存庫上。我們建議您在建立新專案時從[這裡開始](freertos-getting-started-modular.md)。如果您已經有以現在已棄用之 Amazon-FreeRTOS 儲存庫為基礎的現有 FreeRTOS 專案，請參閱 [Amazon-FreeRTOS Github 儲存庫遷移指南](github-repo-migration.md)。 FreeRTOS 

Nordic nrf52840-dk 支援透過 ECDSA 程式碼簽署憑證進行的自我簽署 SHA256。

**注意**  
若要建立程式碼簽署的憑證，請在您的機器上安裝 [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 建議使用適用於 的程式碼簽署，但您可以手動簽署韌體映像。