

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

# 에서 Microsoft 매니페스트 생성 및 편집 도구(Mage.exe) AWS CloudHSM 를 사용하여 파일 서명
<a name="third-magetool"></a>

**참고**  
AWS CloudHSM 는 Windows SDK for .NET Framework 4.8.1 이상에 포함된 64비트 Mage 도구만 지원합니다.

다음 주제에서는 [ Mage.exe](https://learn.microsoft.com/en-us/dotnet/framework/tools/mage-exe-manifest-generation-and-editing-tool)를와 함께 사용하는 방법에 대한 개요를 제공합니다 AWS CloudHSM.

**Topics**
+ [1단계: 사전 조건 설정](#magetool-prereqs)
+ [2단계: 서명 인증서 생성](#magetool-csr)
+ [3단계: 파일 서명](#magetool-sign)

## 1단계: 사전 조건 설정
<a name="magetool-prereqs"></a>

Microsoft Mage.exe를와 함께 사용하려면 다음이 AWS CloudHSM필요합니다.
+ Windows 운영 체제를 실행하는 Amazon EC2 인스턴스
+ 자체 관리하는 또는 타사 공급자의 인증 기관(CA)
+ 하나 이상의 HSM이 있는 EC2 인스턴스와 동일한 Virtual Private Cloud(VPC)의 활성 AWS CloudHSM 클러스터
+  AWS CloudHSM 클러스터에서 키를 소유하고 관리할 CU(Crypto User)
+ 서명되지 않은 파일 또는 실행 파일
+ Microsoft Windows 소프트웨어 개발 키트(SDK)

**AWS CloudHSM Mage.exe에서를 사용하기 위한 사전 조건을 설정하려면**

1. 이 가이드의 [시작하기](getting-started.md) 섹션에 있는 지침에 따라 Windows EC2 인스턴스와 AWS CloudHSM 클러스터를 시작합니다.

1. 자체 Windows Server CA를 호스팅하려면를 [사용하여 Windows Server를 인증 기관으로 구성 AWS CloudHSM](win-ca-overview-sdk5.md)의 1단계와 2단계를 완료합니다. 그렇지 않으면 공신력 있는 타사 CA를 사용합니다.

1. Microsoft Windows SDK for .NET Framework 4.8.1 이상을 다운로드하고 Windows EC2 인스턴스에 설치합니다.
   + [Microsoft Windows SDK 10](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)

   `mage.exe` 실행 파일은 Windows SDK 도구의 일부입니다. 기본 설치 위치는 다음과 같습니다.

   ```
   C:\Program Files (x86)\Windows Kits\{{<SDK version>}}\bin\{{<version number>}}\x64\Mage.exe
   ```

이 단계를 완료한 후 Microsoft Windows SDK, AWS CloudHSM 클러스터 및 CA를 사용하여 [서명 인증서를 생성할](#magetool-csr) 수 있습니다.

## 2단계: 서명 인증서 생성
<a name="magetool-csr"></a>

이제 EC2 인스턴스에 Windows SDK가 설치되었습니다. SDK를 사용하여 인증서 서명 요청(CSR)을 생성할 수 있습니다. CSR은 서명을 위해 CA에 전달되는 서명되지 않은 인증서입니다. 이 예제에서는 Windows SDK에 포함된 `certreq` 실행 파일을 사용하여 CSR을 생성합니다.

**certreq 실행 파일을 사용하여 CSR을 생성하려면**

1. Windows EC2 인스턴스에 연결합니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)을 참조하세요.

1. 다음 콘텐츠가 포함된 `request.inf`이라는 파일을 생성합니다. `Subject` 정보를 조직의 세부 사항에 맞춰 바꿉니다.

   ```
   [Version]
   Signature= $Windows NT$
   [NewRequest]
   Subject = "C={{<Country>}},CN={{<www.website.com>}},O={{<Organization>}},OU={{<Organizational-Unit>}},L={{<City>}},S={{<State>}}"
   RequestType=PKCS10
   HashAlgorithm = SHA256
   KeyAlgorithm = RSA
   KeyLength = 2048
   ProviderName = "CloudHSM Key Storage Provider"
   KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE"
   MachineKeySet = True
   Exportable = False
   ```

   각 파라미터에 대한 설명은 [Microsoft 설명서](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1#BKMK_New)를 참조하십시오.

1. `certreq.exe`를 실행하여 CSR을 생성합니다.

   ```
   certreq.exe -new request.inf request.csr
   ```

   이 명령은 AWS CloudHSM 클러스터에서 새 키 페어를 생성하고 프라이빗 키를 사용하여 CSR을 생성합니다.

1. CA에 CSR을 제출합니다. Windows Server CA를 사용하는 경우 다음 단계를 따릅니다.

   1. CA 도구를 엽니다.

      ```
      certsrv.msc
      ```

   1. 새 창에서 CA 서버 이름을 마우스 오른쪽 버튼으로 클릭합니다. **모든 작업**을 선택한 후 **새 요청 제출**을 선택합니다.

   1. `request.csr`의 위치로 이동하여 **열기**를 선택합니다.

   1. **서버 CA** 메뉴를 확장하여 **대기 중인 요청** 폴더로 이동합니다. 방금 생성한 요청을 마우스 오른쪽 버튼으로 클릭하고 **모든 작업**에서 **발행**을 선택합니다.

   1. **발급된 인증서** 폴더로 이동합니다.

   1. **열기**를 선택하여 인증서를 보고 **세부 정보** 탭을 선택합니다.

   1. **파일에 복사**를 선택하여 인증서 내보내기 마법사를 시작합니다. DER 인코딩 X.509 파일을 안전한 곳에 `signedCertificate.cer`로 저장합니다.

   1. CA 도구를 종료하고 다음 명령을 실행하여 인증서 파일을 Windows의 개인 인증서 저장소로 이동합니다.

      ```
      certreq.exe -accept signedCertificate.cer
      ```

이제 가져온 인증서를 사용하여 [파일에 서명](#magetool-sign)할 수 있습니다.

## 3단계: 파일 서명
<a name="magetool-sign"></a>

이제 Mage.exe와 가져온 인증서가 있으므로 파일에 서명할 수 있습니다. 인증서의 SHA-1 해시 또는 *지문*을 알아야 합니다. 지문은 Mage.exe가 AWS CloudHSM에서 검증된 인증서만 사용하도록 합니다. 이 예제에서는 PowerShell을 사용하여 인증서 해시를 가져옵니다.

**인증서 지문을 얻어 파일 서명에 사용하려면**

1. `mage.exe`가 포함된 디렉터리로 이동합니다. 기본 위치는 다음과 같습니다.

   ```
   C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools\x64
   ```

1. Mage.exe를 사용하여 샘플 애플리케이션 파일을 생성하려면 다음 명령을 실행합니다.

   ```
   mage.exe -New Application -ToFile C:\Users\Administrator\Desktop\sample.application
   ```

1. 관리자로 PowerShell을 열어 다음 명령을 실행합니다.

   ```
   Get-ChildItem -path cert:\LocalMachine\My
   ```

   출력에서 `Thumbprint`, `Key Container`, `Provider` 값을 복사합니다.  
![인증서의 해시는 출력에서 지문, 키 컨테이너, 공급자로 표시됩니다.](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/certstore-my-certificate.png)

1. 다음 명령을 실행하여 파일에 서명합니다.

   ```
   mage.exe -Sign -CertHash {{<thumbprint>}} -KeyContainer {{<keycontainer>}} -CryptoProvider {{<CloudHSM Key Storage Provider/Cavium Key Storage Provider>}} C:\Users\Administrator\Desktop\{{<sample.application>}}
   ```

   명령이 성공하면 PowerShell이 성공 메시지를 반환합니다.

1. 파일의 서명을 확인하려면 다음 명령을 사용합니다.

   ```
   mage.exe -Verify -CryptoProvider {{<CloudHSM Key Storage Provider/Cavium Key Storage Provider>}} C:\Users\Administrator\Desktop\{{<sample.application>}}
   ```