Visual Studio 오프라인 설치에 필요한 인증서 설치

Visual Studio는 많은 구성 요소가 정기적으로 업데이트되므로 주로 인터넷에 연결된 컴퓨터에서 설치하도록 설계되어 있습니다. 하지만 몇몇 추가 단계를 거치면 인터넷에 연결되지 않은 환경에 Visual Studio를 배포할 수 있습니다.

Visual Studio 설치 엔진은 신뢰할 수 있는 콘텐츠만 설치합니다. 이렇게 하려면 다운로드되는 콘텐츠의 Authenticode 시그니처를 확인하고 모든 콘텐츠를 신뢰할 수 있는지 검증한 후 설치합니다. 그러면 다운로드 위치를 손상시키는 공격으로부터 환경을 보호할 수 있습니다.

따라서 Visual Studio를 설치하려면 여러 표준 Microsoft 루트 및 중간 인증서가 사용자 컴퓨터에 설치되고 최신 상태로 유지되어야 합니다. 컴퓨터가 Windows 업데이트를 통해 최신 상태로 유지되면 서명 인증서는 일반적으로 최신 상태입니다. 컴퓨터가 인터넷에 연결되어 있는 경우 Visual Studio에서 설치 중에 파일 서명을 확인하는 데 필요한 인증서를 새로 고칠 수 있습니다. 시스템이 오프라인 상태인 경우 인증서는 다른 방법으로 새로 고쳐야 합니다.

오프라인 상태인 경우 인증서를 새로 고치는 방법

오프라인 환경에서 인증서를 설치하거나 업데이트하는 세 가지 옵션이 있습니다.

옵션 1 - 레이아웃 폴더에서 인증서를 수동으로 설치

네트워크 레이아웃 또는 로컬 오프라인 캐시를 만들면 필요한 인증서가 Certificates 폴더에 다운로드됩니다. 각 인증서 파일을 마우스 오른쪽 버튼으로 클릭하고 인증서 설치를 선택한 다음, 인증서 관리자 마법사를 클릭하여 인증서를 수동으로 설치할 수 있습니다. 암호를 묻는 메시지가 표시되면 비워 두세요.

옵션 2 - 엔터프라이즈 환경에서 신뢰할 수 있는 루트 인증서 배포

최신 루트 인증서가 없는 오프라인 컴퓨터가 있는 엔터프라이즈의 경우 관리자는 신뢰할 수 있는 루트 및 허용되지 않는 인증서 구성 페이지의 지침에 따라 인증서를 업데이트할 수 있습니다.

옵션 3 - Visual Studio 스크립트 배포의 일부로 인증서 설치

오프라인 환경에서 클라이언트 워크스테이션에 대한 Visual Studio 배포를 스크립팅할 경우 다음 단계를 수행해야 합니다.

  1. 인증서 관리자 도구 (certmgr.exe)를 네트워크 레이아웃 또는 로컬 캐시 설치 위치로 복사합니다. Certmgr.exe는 Windows 자체의 일부로 포함되지 않지만 Windows SDK의 일부로 제공됩니다.

  2. 다음 명령으로 배치 파일을 만듭니다.

    certmgr.exe -add [layout path]\certificates\manifestRootCertificate.cer -n "Microsoft Root Certificate Authority 2011" -s -r LocalMachine root
    
    certmgr.exe -add [layout path]\certificates\manifestCounterSignRootCertificate.cer -n "Microsoft Root Certificate Authority 2010" -s -r LocalMachine root
    
    certmgr.exe -add [layout path]\certificates\vs_installer_opc.RootCertificate.cer -n "Microsoft Root Certificate Authority 2010" -s -r LocalMachine root
    

    또는 다음 명령을 사용하여 Windows와 함께 제공되는 certutil.exe를 사용하는 일괄 처리 파일을 만듭니다.

    certutil.exe -addstore -f "Root" "[layout path]\certificates\manifestRootCertificate.cer"
    
    certutil.exe -addstore -f "Root" "[layout path]\certificates\manifestCounterSignRootCertificate.cer"
    
    certutil.exe -addstore -f "Root" "[layout path]\certificates\vs_installer_opc.RootCertificate.cer"
    
  3. 일괄 처리 파일을 클라이언트에 배포합니다. 이 명령은 관리자 권한 프로세스에서 실행되어야 합니다.

Certificates 폴더에 있는 인증서 파일은 무엇인가요?

  • manifestRootCertificate.cer는 다음을 포함합니다.
    • 루트 인증서: Microsoft Root Certificate Authority 2011
  • manifestCounterSignRootCertificate.cervs_installer_opc.RootCertificate.cer는 다음을 포함합니다.
    • 루트 인증서: Microsoft Root Certificate Authority 2010

Visual Studio 설치 관리자에서는 시스템에 루트 인증서만 설치해야 합니다. 이러한 인증서 모두는 최신 Windows 업데이트가 설치되지 않은 Windows 7 서비스 팩 1 시스템에 필요합니다.

Certificates 폴더의 인증서가 자동으로 설치되지 않는 이유는 무엇인가요?

시그니처가 온라인 환경에서 검증되면 Windows API를 사용하여 인증서를 다운로드하고 시스템에 추가합니다. 인증서가 신뢰할 수 있고 관리 설정을 통해 허용되는지에 대한 검증이 이 프로세스 중에 수행됩니다. 대부분의 오프라인 환경에서는 이 검증 프로세스를 수행할 수 없습니다. 인증서를 수동으로 설치하면 엔터프라이즈 관리자는 인증서가 신뢰할 수 있고 조직의 보안 정책을 충족하는지 확인할 수 있습니다.

인증서가 설치되어 있는지 확인

설치하는 시스템을 확인할 한 가지 방법은 다음 단계를 수행하는 것입니다.

  1. mmc.exe를 실행합니다.
    a. 파일을 클릭한 다음, 스냅인 추가/제거를 선택합니다.
    b. 인증서를 두 번 클릭하고, 컴퓨터 계정을 선택하고 다음을 클릭합니다.
    다. 로컬 컴퓨터를 선택한 다음 마침을 클릭합니다.
    d. 인증서(로컬 컴퓨터) 를 확장합니다.
    e. 신뢰할 수 있는 루트 인증 기관을 확장하고 인증서를 선택합니다.

    • 이 목록에서 필요한 루트 인증서를 확인합니다.

    f. 중간 인증 기관을 확장하고 인증서를 선택합니다.

    • 이 목록에서 필요한 중간 인증서를 확인합니다.
  2. 파일을 클릭한 다음, 스냅인 추가/제거를 선택합니다.
    a. 인증서를 두 번 클릭하고, 내 사용자 계정을 선택한 다음 마침을 클릭합니다.
    b. 인증서 – 현재 사용자를 확장합니다.
    다. 중간 인증 기관을 확장하고 인증서를 선택합니다.

    • 이 목록에서 필요한 중간 인증서를 확인합니다.

인증서 이름이 발급 대상 열에 없는 경우 이러한 인증서를 설치해야 합니다. 중간 인증서가 현재 사용자 중간 인증서 저장소에만 있는 경우 로그인한 사용자만 해당 인증서를 사용할 수 있습니다. 다른 사용자를 위해 설치해야 할 수도 있습니다.

Visual Studio 설치

클라이언트 컴퓨터에 인증서를 설치한 후 로컬 레이아웃에서 Visual Studio를 설치하거나 네트워크 레이아웃 공유에서 클라이언트 머신으로 Visual Studio를 배포할 준비가 된 것입니다.

지원 또는 문제 해결

때로는 무엇인가 잘못될 수도 있습니다. Visual Studio 설치에 실패하는 경우 단계별 지침은 Visual Studio 설치 및 업그레이드 문제 해결을 참조하세요.

몇 가지 추가 지원 옵션은 다음과 같습니다.

  • 설치 관련 문제를 위한 설치 채팅(영어만 가능) 지원 옵션이 제공됩니다.
  • Visual Studio 설치 관리자와 Visual Studio IDE에 모두 표시되는 문제 보고 도구를 통해 Microsoft에 제품 문제를 보고합니다. IT 관리자이고 Visual Studio가 설치되어 있지 않은 경우 여기에서 IT 관리자 피드백을 제출할 수 있습니다.
  • Visual Studio 개발자 커뮤니티에서 기능을 제안하고, 제품 문제를 추적하고, 답변을 찾습니다.