다음을 통해 공유


애플리케이션 및 배포 매니페스트 서명

ClickOnce 배포를 사용하여 애플리케이션을 게시하려면 애플리케이션 및 배포 매니페스트를 공개/프라이빗 키 쌍으로 서명하고 Authenticode 기술을 사용하여 서명해야 합니다. Windows 인증서 저장소 또는 키 파일의 인증서를 사용하여 매니페스트에 서명할 수 있습니다.

이 문서의 정보는 .NET Framework 4.8.1 이하를 사용하는 경우에만 적용됩니다. .NET 5 이상을 사용하는 경우 ClickOnce를 사용하여 .NET Windows 데스크톱 애플리케이션 배포의 단계를 수행합니다.

ClickOnce 매니페스트 서명은 .exe기반 애플리케이션에 대한 선택 사항입니다. 자세한 내용은 이 문서의 "서명되지 않은 매니페스트 생성" 섹션을 참조하세요.

키 파일을 만드는 방법에 대한 자세한 내용은 방법: 공개-프라이빗 키 쌍 만들기를 참조하세요.

어셈블리 및 애플리케이션 매니페스트 서명에 대한 자세한 내용은 어셈블리 및 매니페스트 서명 관리를 참조하세요.

비고

Visual Studio는 .pfx 확장명이 있는 PFX(개인 정보 교환) 키 파일만 지원합니다. 그러나 프로젝트 속성의 서명 페이지에서 스토어에서 선택을 클릭하여 현재 사용자의 Windows 인증서 저장소에서 다른 유형의 인증서를 선택할 수 있습니다.

인증서를 사용하여 서명

이 방법을 사용하려면 CA(인증 기관)에서 서명한 인증서가 있어야 합니다. 인증서는 타사 인증 서비스 공급자 또는 엔터프라이즈 내의 권한 있는 조직에서 발급합니다.

  1. 프로젝트 속성 창으로 이동합니다( 솔루션 탐색기 에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성을 선택). 서명 탭에서 ClickOnce 매니페스트 서명 확인란을 선택합니다.

  2. 스토어에서 선택 단추를 클릭합니다.

    인증서 선택 대화 상자가 나타나고 Windows 인증서 저장소의 내용이 표시됩니다.

    팁 (조언)

    인증서 속성을 보려면 여기를 클릭하면 인증서 세부 정보 대화 상자가 나타납니다. 이 대화 상자에는 인증서 및 추가 옵션에 대한 자세한 정보가 포함됩니다. 인증서를 클릭하여 추가 도움말 정보를 봅니다.

  3. 매니페스트에 서명하는 데 사용할 인증서를 선택합니다.

    팁 (조언)

    저장소에 인증서가 없는 경우에도 테스트 인증서를 사용하여 서명할 수 있습니다.

  4. 또한 타임스탬프 서버 URL 텍스트 상자에서 타임스탬프 서버의 주소를 지정할 수 있습니다. 매니페스트가 서명된 시기를 지정하는 타임스탬프를 제공하는 서버입니다. 일반적으로 CA에서 서명한 인증서를 제공하는 동일한 타사에서 제공합니다.

기존 키 파일을 사용하여 서명

  1. 서명 페이지에서 ClickOnce 매니페스트 서명 확인란을 선택합니다.

  2. 파일에서 선택 단추를 클릭합니다.

    파일 선택 대화 상자가 나타납니다.

  3. 파일 선택 대화 상자에서 사용할 키 파일(.pfx)의 위치를 찾은 다음 열기를 클릭합니다.

    비고

    이 옵션은 .pfx 확장명이 있는 파일만 지원합니다. 다른 형식의 키 파일 또는 인증서가 있는 경우 Windows 인증서 저장소에 저장하고 이전 절차에서 설명한 인증서를 선택합니다. 선택한 인증서의 용도에는 코드 서명이 포함되어야 합니다.

    파일을 열 암호 입력 대화 상자가 나타납니다. (.pfx 파일이 Windows 인증서 저장소에 이미 저장되어 있거나 암호로 보호되지 않은 경우 암호를 입력하라는 메시지가 표시되지 않습니다.)

  4. 암호를 입력하여 키 파일에 액세스한 다음 Enter 키를 선택합니다.

  5. 자세한 정보를 선택하여 인증서의 속성을 확인합니다. ClickOnce는 사용자가 애플리케이션을 설치할 때 인증서를 표시할 때 제목 필드의 값을 게시 자로 표시합니다. 다음은 ClickOnce 애플리케이션이 설치될 때 사용자에게 표시되는 내용의 예입니다.

    애플리케이션 설치 시간에 표시된 인증서의 스크린샷.

비고

.pfx 파일에는 인증서 체인 정보를 포함할 수 없습니다. 이 경우 다음과 같은 가져오기 오류가 발생합니다. 암호 해독을 위한 인증서 및 프라이빗 키를 찾을 수 없습니다. 인증서 연결 정보를 제거하려면 Certmgr.msc를 사용하고 *.pfx 파일을 내보낼 때 모든 인증서 포함옵션을 사용하지 않도록 설정할 수 있습니다.

테스트 인증서를 사용하여 서명

테스트 인증서는 CA(인증 기관)에서 서명하지 않으며 테스트 목적으로만 사용해야 합니다. 테스트 인증서에 대한 자세한 내용은 인증 기관을 사용하여 사용자를 돕는 방법을 참조하세요.

  1. 서명 페이지에서 ClickOnce 매니페스트 서명 확인란을 선택합니다.

  2. 테스트를 위한 새 인증서를 만들려면 테스트 인증서 만들기 단추를 클릭합니다.

  3. 테스트 인증서 만들기 대화 상자에서 테스트 인증서를 보호하는 데 도움이 되는 암호를 입력합니다.

비고

.NET 2.0을 대상으로 하지 않는 한 sha256RSA서명 알고리즘으로 선택해야 합니다.

서명되지 않은 매니페스트 생성

ClickOnce 매니페스트 서명은 .exe 기반의 애플리케이션에 대해 선택 사항입니다. 다음 절차에서는 서명되지 않은 ClickOnce 매니페스트를 생성하는 방법을 보여 줍니다.

중요합니다

서명되지 않은 매니페스트는 애플리케이션의 개발 및 테스트를 간소화할 수 있습니다. 그러나 서명되지 않은 매니페스트는 프로덕션 환경에서 상당한 보안 위험을 초래합니다. ClickOnce 애플리케이션이 인터넷 또는 악성 코드의 다른 소스와 완전히 격리된 인트라넷 내의 컴퓨터에서 실행되는 경우에만 서명되지 않은 매니페스트를 사용하는 것이 좋습니다.

기본적으로 ClickOnce는 생성된 해시에서 하나 이상의 파일이 특별히 제외되지 않는 한 서명된 매니페스트를 자동으로 생성합니다. 즉, 애플리케이션을 게시하면 ClickOnce 매니페스트 서명 확인란의 선택을 취소한 경우에도 모든 파일이 해시에 포함된 경우 서명된 매니페스트가 생성됩니다.

서명되지 않은 매니페스트를 생성하고 생성된 해시에 모든 파일을 포함하려면

해시의 모든 파일을 포함하는 서명되지 않은 매니페스트를 생성하려면 먼저 서명된 매니페스트와 함께 애플리케이션을 게시해야 합니다. 따라서 먼저 이전 절차 중 하나를 수행하여 ClickOnce 매니페스트에 서명한 다음 애플리케이션을 게시합니다.

  1. 서명 탭에서 ClickOnce 매니페스트 서명 확인란의 선택을 취소합니다.

  2. 게시 탭에서 애플리케이션의 한 버전만 사용할 수 있도록 게시 버전을 다시 설정합니다. 각 게시에서 버전을 자동으로 증가하기 위한 확인란의 선택을 취소합니다. 기본적으로 Visual Studio는 애플리케이션을 게시할 때마다 게시 버전의 수정 번호를 자동으로 증가합니다. 자세한 내용은 방법: ClickOnce 게시 버전 설정을 참조하세요.

  3. 애플리케이션을 게시합니다. Visual Studio는 애플리케이션이 서버의 기존 애플리케이션과 다른 키로 서명되었음을 알리고 덮어쓸지 묻습니다. 선택합니다.

서명되지 않은 매니페스트를 생성하고 생성된 해시에서 하나 이상의 파일을 제외하려면

  1. 서명 페이지에서 ClickOnce 매니페스트 서명 확인란의 선택을 취소합니다.

  2. 게시 탭에서 애플리케이션 파일 단추를 선택하여 애플리케이션 파일 대화 상자를 열고 생성된 해시에서 제외하려는 파일에 대해 제외하도록 해시를 설정합니다.

    비고

    해시에서 파일을 제외하면 매니페스트의 자동 서명을 사용하지 않도록 ClickOnce가 구성되므로 이전 절차와 같이 서명된 매니페스트를 사용하여 먼저 게시할 필요가 없습니다.

  3. 애플리케이션을 게시합니다.