

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 코드 서명 인증서 생성
<a name="ota-code-sign-cert"></a>

펌웨어 이미지에 디지털 방식으로 서명하려면 코드 서명 인증서와 프라이빗 키가 필요합니다. 테스트 목적으로 자체 서명된 인증서와 프라이빗 키를 생성할 수 있습니다. 프로덕션 환경에서는 잘 알려진 인증 기관(CA)을 통해 인증서를 구입하십시오.

플랫폼에 따라 필요한 코드 서명 인증서 유형이 다릅니다. 다음 단원에서는 서로 다른 FreeRTOS 적격 플랫폼에 대한 코드 서명 인증서를 생성하는 방법을 설명합니다.

**Topics**
+ [

# Texas Instruments CC3220SF-LAUNCHXL을 위한 코드 서명 인증서 생성
](ota-code-sign-cert-ti.md)
+ [

# Espressif ESP32에 대한 코드 서명 인증서 생성
](ota-code-sign-cert-esp.md)
+ [

# Nordic nrf52840-dk에 대한 코드 서명 인증서 생성
](ota-code-sign-cert-nordic.md)
+ [

# FreeRTOS Windows 시뮬레이터용 코드 서명 인증서 생성
](ota-code-sign-cert-win.md)
+ [

# 사용자 지정 하드웨어에 대한 코드 서명 인증서 생성
](ota-code-sign-cert-other.md)

# Texas Instruments CC3220SF-LAUNCHXL을 위한 코드 서명 인증서 생성
<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 CC3220SF Wireless Microcontroller Launchpad Development Kit는 펌웨어 코드 서명을 위한 두 가지 인증서 체인을 지원합니다.
+ 프로덕션(인증서 카탈로그)

  프로덕션 인증서 체인을 사용하려면 상용 코드 서명 인증서를 구매하고 [TI Uniflash 도구](http://www.ti.com/tool/UNIFLASH)를 사용하여 보드를 프로덕션 모드로 설정해야 합니다.
+ 테스트 및 개발(인증서 실습) 

  플레이그라운드 인증서 체인을 사용하면 자체 서명된 코드 서명 인증서를 사용하여 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 SDK의 인증서는 DER 형식입니다. 자체 서명된 코드 서명 인증서를 생성하려면 이를 PEM 형식으로 변환해야 합니다.

다음 단계에 따라 Texas Instruments 플레이그라운드 인증서 계층 구조에 연결되고 AWS Certificate Manager 및 Code Signing for AWS IoT criteria를 충족하는 코드 서명 인증서를 생성합니다.

**참고**  
코드 서명 인증서를 생성하려면 컴퓨터에 [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
   ```
**참고**  
나중에 TI 개발 보드에 `tisigner.crt.der` 인증서를 작성합니다.

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 것이 좋지만 펌웨어 이미지에 수동으로 서명할 수 있습니다.

# Espressif ESP32에 대한 코드 서명 인증서 생성
<a name="ota-code-sign-cert-esp"></a>

**중요**  <a name="deprecation-message"></a>
이 라이브러리는 더 이상 사용되지 않는 Amazon-FreeRTOS 리포지토리에서 호스팅됩니다. 새 프로젝트를 생성할 때는 [여기서 시작](freertos-getting-started-modular.md)하는 것이 좋습니다. 현재 사용되지 않는 Amazon-FreeRTOS 리포지토리를 기반으로 하는 기존 FreeRTOS 프로젝트가 이미 있는 경우에는 [Amazon-FreeRTOS Github 리포지토리 마이그레이션 가이드](github-repo-migration.md) 섹션을 참조하세요.

Espressif 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 것이 좋지만 펌웨어 이미지에 수동으로 서명할 수 있습니다.

# 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) 섹션을 참조하세요.

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 것이 좋지만 펌웨어 이미지에 수동으로 서명할 수 있습니다.

# FreeRTOS Windows 시뮬레이터용 코드 서명 인증서 생성
<a name="ota-code-sign-cert-win"></a>

FreeRTOS Windows 시뮬레이터에서 OTA 업데이트를 수행하려면 ECDSA P-256 키 및 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 것이 좋지만 펌웨어 이미지에 수동으로 서명할 수 있습니다.

# 사용자 지정 하드웨어에 대한 코드 서명 인증서 생성
<a name="ota-code-sign-cert-other"></a>

적절한 도구 세트를 사용하여 하드웨어에 대해 자체 서명된 인증서와 프라이빗 키를 생성합니다.

 AWS Command Line Interface 를 사용하여 코드 서명 인증서, 프라이빗 키 및 인증서 체인을 로 가져옵니다 AWS Certificate Manager. 설치에 대한 자세한 내용은 설치를 AWS CLI참조하세요. [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 

코드 서명 인증서를 생성한 후 AWS CLI 를 사용하여 ACM으로 가져올 수 있습니다.

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

이 명령의 출력에는 인증서에 대한 ARN이 표시됩니다. OTA 업데이트 작업을 생성할 때 이 ARN이 필요합니다.

ACM에서 특정 알고리즘 및 키 크기를 사용하려면 인증서가 필요합니다. 자세한 내용은 [인증서를 가져오기 위한 사전 조건](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-prerequisites.html)을 참조하십시오. ACM에 대한 자세한 내용은 [AWS Certificate Manager으로 인증서 가져오기](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)를 참조하세요.

코드 서명 인증서의 내용을 복사하여 나중에 다운로드할 FreeRTOS 코드의 일부인 `vendors/vendor/boards/board/aws_demos/config_files/ota_demo_config.h` 파일에 붙여넣고 서식을 지정해야 합니다.