Visual Studio가 앱에 서명하는 데 사용하는 인증서 관리

 

Windows에만 적용

Visual Studio는 앱 패키지를 만들 때 앱에 서명합니다.Visual Studio가 앱에 서명하는 데 사용하는 인증서를 관리하는 방법은 다음과 같습니다.

  • 테스트 인증서 생성

  • 대체 인증서 선택

  • 인증서 갱신

  • 인증서 삭제 또는 내보내기

  • Visual Studio가 수행할 유효성 검사 결정

  • 설치된 응용 프로그램 수정

참고

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

테스트 인증서 생성

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

테스트 인증서를 생성할 때 Visual Studio가 프로젝트 파일을 변경한 내용

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

<PackageCertificateKeyFile>
   RisingStar_TemporaryKey.pfx
</PackageCertificateKeyFile>

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

테스트 인증서의 속성 및 확장 값

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

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

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

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

참고

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

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

대체 인증서 선택

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

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

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

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

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

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

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

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

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

인증서 갱신

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

인증서를 갱신하려면

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

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

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

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

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

인증서 삭제 또는 내보내기

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

Visual Studio가 수행할 유효성 검사 결정

패키징 중에 Visual Studio에서는 유효성 검사를 여러 번 실시하여 인증서의 유효성을 검사합니다.

특정 시나리오에서는 사용되는 인증서와 인증서에 대해 Visual Studio에서 실행할 유효성 검사를 보다 자세하게 제어해야 할 수 있습니다.MSBuild 속성 EnableSigningChecksFalse로 설정하면 서비스 인스턴스 내의 상태를 유지할 수 있습니다.

False로 설정하면 Visual Studio에서는 다음 유효성 검사만 수행합니다.

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

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

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

이 속성을 True(기본값)로 설정하면 Visual Studio에서는 다음과 같은 추가 검사를 실행하고,

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

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

설치된 응용 프로그램 수정

설치된 패키지의 파일이 수정되면 서명 확인으로 인해 응용 프로그램을 시작하지 못할 수 있습니다.패키지를 수정하려면 원래 소스 파일을 변경하고 수정된 패키지를 재배포합니다.

참고 항목

Windows 10용 유니버설 Windows 앱 패키징