앱 패키지에 서명(Windows 스토어 앱)

기본적으로 Visual Studio에서 생성하는 모든 응용 프로그램 패키지는 테스트 인증서를 사용하여 서명됩니다.패키지를 만들 때 Visual Studio에서는 서명된 패키지 자체를 포함하는 폴더를 생성합니다.이 폴더에 포함된 인증서(.cer) 파일에는 패키지에 서명하는 데 사용되는 공개 키가 들어 있습니다.이 키는 응용 프로그램 패키지가 설치되기 전에 컴퓨터에 설치되어야 합니다.

테스트 인증서 생성

프로젝트가 만들어질 때 인증서 파일(.pfx)이 생성되어 프로젝트에 추가됩니다.

인증서의 주체 필드가 소스 매니페스트(.appxmanifest) 파일의 Identity 요소에 대한 Publisher 특성으로 설정됩니다.

  • 로컬 패키지를 만드는 경우 Publisher 특성의 기본값은 사용자 이름입니다.

  • Windows 스토어의 패키지를 만들거나 Windows 스토어에 응용 프로그램을 연결하는 경우 Publisher 특성은 패키지를 만드는 동안 로그인할 때 스토어의 개발자 계정에서 얻은 Publisher ID로 설정됩니다.

인증서를 만드는 동안 프로젝트 파일에 속성도 추가됩니다.

<PackageCertificateKeyFile> RisingStar_TemporaryKey.pfx </PackageCertificateKeyFile>

PackageCertificateKeyFile의 값은 소스 인증서 자체의 상대 경로 또는 전체 경로입니다.

인증서가 없는 경우 패키지가 명령 프롬프트에서 빌드될 때가 아니라 스토어 메뉴에서 빌드될 때 인증서가 만들어집니다.Visual Studio에서 인증서를 만들 때 다음 속성의 값이 설정됩니다.

  • 기본 제약 조건 확장의 값이 주체 종류=최종 엔터티로 설정됩니다.

    참고

    기본 제약 조건 확장은 인증서 주체가 CA(인증 기관)인지 여부를 식별합니다.이 확장은 이 인증서가 포함된 유효한 인증 경로의 최대 수준도 정의합니다.기본 제약 조건 속성은 인증된 공개 키가 인증서 서명을 확인할 수 있는지 여부를 지정합니다.

  • EKU(확장된 키 사용) 확장의 값이 코드 서명으로 설정됩니다.

인증서는 만들어진 날짜로부터 1년 동안 유효합니다.인증서를 갱신하는 방법에 대한 자세한 내용은 인증서 갱신을 참조하십시오.

서명 프로세스 중에 "지정한 인증서가 만료되었거나 다른 문제가 있어 사용할 수 없다"는 메시지가 나타나는 경우 매니페스트 디자이너를 사용하여 기존 인증서를 대체하는 테스트 인증서를 만듭니다.

인증서 유효성 검사

패키징 중에 Visual Studio에서는 다음과 같이 지정된 인증서의 유효성을 검사합니다.

  • 기본 제약 조건 확장이 있고 해당 값이 주체 종류=최종 엔터티이거나 지정되지 않았는지 확인합니다.

  • 확장된 키 사용 속성의 값을 확인합니다. 이 값에는 코드 서명이 포함되어야 하고 영구 서명도 포함될 수 있습니다.다른 모든 EKU는 금지됩니다.

  • KU(키 사용) 속성의 값을 확인합니다. 이 값은 Unset 또는 DigitalSignature여야 합니다.

  • 개인 키가 있는지 확인합니다.

  • 인증서가 활성 상태이고 만료되지 않았으며 취소되지 않았는지 확인합니다.

특정 시나리오에서는 사용되는 인증서와 인증서에 대해 실행되는 유효성 검사를 보다 자세하게 제어해야 할 수 있습니다.MSBuild 속성 EnableSigningChecks는 위의 인증서 검사 중에서 어떤 검사가 수행되어야 하는지를 제어합니다.이 속성을 True(기본값)로 설정하면 Visual Studio에서는 모든 검사를 실행하고,False로 설정하면 Visual Studio에서는 다음 작업만 수행합니다.

  • 개인 키가 있는지 확인합니다.

  • 확장된 키 사용 속성의 값에 코드 서명이 포함되어 있는지 여부를 확인합니다.

  • 인증서가 활성 상태이고 만료되지 않았으며 취소되지 않았는지 확인합니다.

참고

EnableSignignChecks가 False로 설정되어 있으면 PowerShell 스크립트가 응용 프로그램 패키지를 설치하는 데 필요한 모든 규칙을 사용자 지정 인증서가 따르지 않을 수 있기 때문에 스크립트가 작동하지 않을 수 있습니다.자세한 내용은로컬로 앱 패키지 공유(Windows 스토어 앱)를 참조하십시오.

대체 인증서 선택

Visual Studio에서는 프로젝트가 만들어질 때 자동으로 인증서를 만들지만 직접 인증서를 만들거나 기존 인증서를 사용하여 패키지에 서명할 수도 있습니다.

대체 인증서를 만들거나 사용하려면

  1. 솔루션 탐색기에서 .appxmanifest 파일의 바로 가기 메뉴를 열고 연결 프로그램을 선택한 다음 응용 프로그램 매니페스트 디자이너를 선택합니다.

  2. 응용 프로그램 매니페스트 디자이너에서 패키징 탭을 선택한 다음 인증서 선택 단추를 선택합니다.

  3. 인증서 선택 대화 상자에서 인증서 구성 목록을 확장하고 다음 옵션 중 하나를 선택합니다.

    • 인증서 저장소에서 선택
      운영 체제의 인증서 저장소에서 Personal 인증서 중 하나를 선택합니다.

    • 파일에서 선택
      파일 시스템에서 기존 인증서 파일을 선택합니다.

    • 테스트 인증서 만들기
      선택한 Publisher ID를 사용하여 인증서를 만듭니다.암호를 만들 수도 있습니다.

어떤 옵션을 선택하든 간에 인증서 파일이 프로젝트에 추가되고 PackageCertificateThumbprint 및 PackageCertificateKeyFile 프로젝트 속성이 적절하게 업데이트됩니다.

참고

서명 프로세스 중에 "지정한 인증서가 만료되었거나 다른 문제가 있어 사용할 수 없다"는 메시지가 나타나는 경우 매니페스트 디자이너를 사용하여 기존 인증서를 대체하는 사용자 지정 인증서를 만듭니다.

인증서 갱신

Visual Studio에서 생성하는 기본 인증서는 인증서가 만들어진 날짜로부터 1년 후에 만료됩니다.인증서가 만료되기 전에 응용 프로그램 매니페스트 디자이너를 사용하여 인증서를 다시 생성하거나 이전 절차에서 설명하듯이 다른 유효한 인증서를 제공해야 합니다.

인증서를 갱신하려면

  1. 솔루션 탐색기에서 .appxmanifest 파일의 바로 가기 메뉴를 열고 연결 프로그램을 선택한 다음 응용 프로그램 매니페스트 디자이너를 선택합니다.

  2. 응용 프로그램 매니페스트 디자이너에서 패키징 탭을 선택한 다음 인증서 선택 단추를 선택합니다.

  3. 인증서 선택 대화 상자에서 인증서 구성 목록을 확장한 다음 테스트 인증서 만들기를 선택합니다.

  4. 테스트 인증서 만들기 대화 상자에서 확인 단추를 클릭합니다.

    Visual Studio에서는 새로운 만료 날짜로 인증서를 다시 생성합니다.

인증서 삭제 또는 내보내기

인증서가 만료 또는 손상되었거나 다른 인증서로 바뀐 경우 인증서를 삭제하거나 내보낼 수 있습니다.인증서를 삭제하거나 내보내는 방법은 How to use the Certificates Console을 참조하십시오.

설치된 응용 프로그램 수정

설치된 패키지의 파일이 수정되면 서명 확인으로 인해 응용 프로그램을 시작하지 못할 수 있습니다.패키지를 수정하려면 개발자 라이선스를 사용하여 원래 소스 파일을 변경하고 수정된 패키지를 재배포합니다.개발자 라이선스에 대한 자세한 내용은 개발자 라이선스 가져오기(Windows 스토어 앱)를 참조하십시오.

참고 항목

개념

패키지 매니페스트 재정의(Windows 스토어 앱)

Visual Studio 2012를 사용하여 Windows 스토어 앱 패키징