SignTool을 사용하여 앱 패키지에 서명
SignTool 은 인증서를 사용하여 앱 패키지 또는 번들에 디지털 서명하는 데 사용되는 명령줄 도구입니다. 인증서는 사용자가 만들거나(테스트 목적으로) 회사에서 발급할 수 있습니다(배포용). 앱 패키지에 서명하면 서명된 사용자 또는 회사의 ID도 확인하는 동시에 앱의 데이터가 서명된 후에 수정되지 않았다는 확인이 사용자에게 제공됩니다. SignTool 은 암호화되거나 암호화되지 않은 앱 패키지 및 번들에 서명할 수 있습니다.
Important
Visual Studio를 사용하여 앱을 개발한 경우 Visual Studio 마법사를 사용하여 앱 패키지를 만들고 서명하는 것이 좋습니다. 자세한 내용은 Visual Studio를 사용하여 UWP 앱 패키지 및 Visual Studio를 사용하여 소스 코드에서 데스크톱 앱 패키지 지정을 참조하세요.
코드 서명 및 인증서에 대한 자세한 내용은 코드 서명 소개를 참조하세요.
필수 조건
패키지된 앱
앱 패키지를 수동으로 만드는 방법에 대한 자세한 내용은 MakeAppx.exe 도구를 사용하여 앱 패키지 만들기를 참조하세요.유효한 서명 인증서
유효한 서명 인증서를 만들거나 가져오는 방법에 대한 자세한 내용은 패키지 서명에 대한 인증서 만들기 또는 가져오기를 참조하세요.SignTool.exe
SDK의 설치 경로에 따라 SignTool이 Windows 10 PC에 있는 위치입니다.- x86: C:\Program Files (x86)\Windows Kits\10\bin\<sdk version>\x86\SignTool.exe
- x64: C:\Program Files (x86)\Windows Kits\10\bin\<sdk version>\x64\SignTool.exe
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 <사용자 암호>"를 생략합니다.
앱 패키지가 유효한 인증서로 서명되면 패키지를 스토어에 업로드할 준비가 된 것입니다. 스토어에 앱을 업로드하고 제출하는 방법에 대한 자세한 지침은 앱 제출을 참조 하세요.