SignTool을 사용하여 앱 패키지에 서명

SignTool 은 인증서를 사용하여 앱 패키지 또는 번들에 디지털 서명하는 데 사용되는 명령줄 도구입니다. 인증서는 사용자가 만들거나(테스트 목적으로) 회사에서 발급할 수 있습니다(배포용). 앱 패키지에 서명하면 서명된 사용자 또는 회사의 ID도 확인하는 동시에 앱의 데이터가 서명된 후에 수정되지 않았다는 확인이 사용자에게 제공됩니다. SignTool 은 암호화되거나 암호화되지 않은 앱 패키지 및 번들에 서명할 수 있습니다.

Important

Visual Studio를 사용하여 앱을 개발한 경우 Visual Studio 마법사를 사용하여 앱 패키지를 만들고 서명하는 것이 좋습니다. 자세한 내용은 Visual Studio를 사용하여 UWP 앱 패키지 및 Visual Studio를 사용하여 소스 코드에서 데스크톱 앱 패키지 지정을 참조하세요.

코드 서명 및 인증서에 대한 자세한 내용은 코드 서명 소개를 참조하세요.

필수 조건

SignTool 사용

SignTool 을 사용하여 파일에 서명하고, 서명 또는 타임스탬프를 확인하고, 서명을 제거하는 등의 작업을 수행할 수 있습니다. 앱 패키지에 서명하기 위해 서명 명령에 초점을 맞춥니다. SignTool에 대한 자세한 내용은 SignTool 참조 페이지를 참조하세요.

해시 알고리즘 확인

SignTool을 사용하여 앱 패키지 또는 번들에 서명하는 경우 SignTool에서 사용되는 해시 알고리즘은 앱을 패키지하는 데 사용한 것과 동일한 알고리즘이어야 합니다. 예를 들어 MakeAppx.exe를 사용하여 기본 설정으로 앱 패키지를 만든 경우 MakeAppx.exe에서 사용하는 기본 알고리즘이므로 SignTool을 사용할 때 SHA256을 지정해야 합니다.

앱을 패키징하는 동안 사용된 해시 알고리즘을 확인하려면 앱 패키지의 콘텐츠를 추출하고 AppxBlockMap.xml 파일을 검사합니다. 앱 패키지의 압축을 풀거나 추출하는 방법을 알아보려면 패키지 또는 번들에서 파일 추출을 참조 하세요. 해시 메서드는 BlockMap 요소에 있으며 다음 형식을 가집니다.

<BlockMap xmlns="http://schemas.microsoft.com/appx/2010/blockmap"
HashMethod="http://www.w3.org/2001/04/xmlenc#sha256">

이 표에는 각 HashMethod 값과 해당 해시 알고리즘이 표시됩니다.

HashMethod 값 해시 알고리즘
http://www.w3.org/2001/04/xmlenc#sha256 SHA256
http://www.w3.org/2001/04/xmldsig-more#sha384 SHA384
http://www.w3.org/2001/04/xmlenc#sha512 SHA512

참고 항목

SignTool의 기본 알고리즘은 SHA1(MakeAppx.exe에서는 사용할 수 없음)이므로 SignTool을 사용할 때 항상 해시 알고리즘을 지정해야 합니다.

앱 패키지 서명

모든 필수 구성 요소가 있고 앱을 패키지하는 데 사용된 해시 알고리즘을 결정했으면 서명할 준비가 된 것입니다.

SignTool 패키지 서명에 대한 일반 명령줄 구문은 다음과 같습니다.

SignTool sign [options] <filename(s)>

앱에 서명하는 데 사용되는 인증서는 .pfx 파일이거나 인증서 저장소에 설치되어 있어야 합니다.

.pfx 파일의 인증서로 앱 패키지에 서명하려면 다음 구문을 사용합니다.

SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.appx
SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.msix

/a 옵션을 사용하면 SignTool에서 최상의 인증서를 자동으로 선택할 수 있습니다.

인증서가 .pfx 파일이 아닌 경우 다음 구문을 사용합니다.

SignTool sign /fd <Hash Algorithm> /n <Name of Certificate> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /n <Name of Certificate> <File Path>.msix

또는 다음 구문을 사용하여 인증서> 이름 대신 원하는 인증서의 <SHA1 해시를 지정할 수 있습니다.

SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.msix

자세한 예제는 SignTool을 사용하여 파일 서명을 참조 하세요.

일부 인증서는 암호를 사용하지 않습니다. 인증서에 암호가 없는 경우 샘플 명령에서 "/p <사용자 암호>"를 생략합니다.

앱 패키지가 유효한 인증서로 서명되면 패키지를 스토어에 업로드할 준비가 된 것입니다. 스토어에 앱을 업로드하고 제출하는 방법에 대한 자세한 지침은 앱 제출을 참조 하세요.