다음을 통해 공유


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

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

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

ClickOnce 배포에 대한 자세한 내용은 ClickOnce 보안 및 배포를 참조하세요.

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

키 파일 만들기에 대한 자세한 내용은 방법: 퍼블릭/프라이빗 키 쌍 만들기를 참조하세요.

참고

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.exe를 사용하고 *.pfx 파일을 내보낼 때 모든 인증서를 포함하는 옵션을 사용하지 않도록 설정할 수 있습니다.

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

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

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

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

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

참고 항목

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

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

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

중요

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

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

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

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

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

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

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

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

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

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

    참고

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

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