Share via


HGS에 대한 인증서 가져오기

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016

HGS를 배포할 때 보호된 VM을 시작하는 데 필요한 중요한 정보를 보호하는 데 사용되는 서명 및 암호화 인증서를 제공하라는 메시지가 표시됩니다. 이러한 인증서는 HGS를 종료하지 않으며, 실행 중인 호스트가 정상임을 입증한 경우에만 보호된 VM 키의 암호를 해독하는 데 사용됩니다. 테넌트(VM 소유자)는 인증서의 공용 절반을 사용하여 보호된 VM을 실행하도록 데이터 센터에 권한을 부여합니다. 이 섹션에서는 HGS에 대해 호환되는 서명 및 암호화 인증서를 가져오는 데 필요한 단계를 설명합니다.

인증 기관에서 인증서 요청

필수는 아니지만 신뢰할 수 있는 인증 기관에서 인증서를 가져오는 것이 좋습니다. 이렇게 하면 VM 소유자가 보호된 VM을 실행하도록 올바른 HGS 서버(예: 서비스 공급자 또는 데이터 센터)에 권한을 부여하고 있는지 확인할 수 있습니다. 엔터프라이즈 시나리오에서는 사용자 고유의 엔터프라이즈 CA를 사용하여 이러한 인증서를 발급하도록 선택할 수 있습니다. 호스트 및 서비스 공급자는 잘 알려진 공용 CA를 대신 사용하는 것이 좋습니다.

서명 및 암호화 인증서는 모두 다음 인증 속성을 사용하여 발급되어야 합니다("권장"으로 표시되지 않는 한).

인증서 템플릿 속성 필수 값
암호화 공급자 KSP(키 스토리지 공급자)입니다. 레거시 CSP(암호화 서비스 공급자)는 지원되지 않습니다 .
키 알고리즘 RSA
최소 키 크기 2048비트
서명 알고리즘 권장: SHA256
키 사용 디지털 서명 데이터 암호화
향상된 키 사용 서버 인증
키 갱신 정책 동일한 키를 사용하여 갱신합니다. 다른 키를 사용하여 HGS 인증서를 갱신하면 보호된 VM이 시작되지 않습니다.
주체 이름 권장: 회사의 이름 또는 웹 주소입니다. 이 정보는 보호 데이터 파일 마법사에서 VM 소유자에게 표시됩니다.

이러한 요구 사항은 하드웨어 또는 소프트웨어에서 지원되는 인증서를 사용하는지 여부에 관계없이 적용됩니다. 보안상의 이유로 HSM(하드웨어 보안 모듈)에서 HGS 키를 만들어 프라이빗 키가 시스템에서 복사되지 않도록 하는 것이 좋습니다. HSM 공급업체의 지침에 따라 위의 특성으로 인증서를 요청하고 모든 HGS 노드에 HSM KSP를 설치하고 권한을 부여해야 합니다.

모든 HGS 노드는 동일한 서명 및 암호화 인증서에 액세스해야 합니다. 소프트웨어 지원 인증서를 사용하는 경우 인증서를 암호가 있는 PFX 파일로 내보내고 HGS에서 인증서를 관리하도록 허용할 수 있습니다. 각 HGS 노드의 로컬 컴퓨터 인증서 저장소에 인증서를 설치하고 HGS에 지문을 제공하도록 선택할 수도 있습니다. 두 옵션 모두 HGS 클러스터 초기화 항목에 설명되어 있습니다.

테스트 시나리오에 대한 자체 서명된 인증서 만들기

HGS 랩 환경을 만들고 인증 기관이 없거나 사용하지 않으려는 경우 자체 서명된 인증서를 만들 수 있습니다. 데이터 파일 보호 마법사에서 인증서 정보를 가져올 때 경고가 표시되지만 모든 기능은 동일하게 기본.

자체 서명된 인증서를 만들고 PFX 파일로 내보내려면 PowerShell에서 다음 명령을 실행합니다.

$certificatePassword = Read-Host -AsSecureString -Prompt 'Enter a password for the PFX file'

$signCert = New-SelfSignedCertificate -Subject 'CN=HGS Signing Certificate' -KeyUsage DataEncipherment, DigitalSignature
Export-PfxCertificate -FilePath '.\signCert.pfx' -Password $certificatePassword -Cert $signCert

# Remove the certificate from "Personal" container
Remove-Item $signCert.PSPath
# Remove the certificate from "Intermediate certification authorities" container
Remove-Item -Path "Cert:\LocalMachine\CA\$($signCert.Thumbprint)"

$encCert = New-SelfSignedCertificate -Subject 'CN=HGS Encryption Certificate' -KeyUsage DataEncipherment, DigitalSignature
Export-PfxCertificate -FilePath '.\encCert.pfx' -Password $certificatePassword -Cert $encCert

# Remove the certificate from "Personal" container
Remove-Item $encCert.PSPath
# Remove the certificate from "Intermediate certification authorities" container
Remove-Item -Path "Cert:\LocalMachine\CA\$($encCert.Thumbprint)"

SSL 인증서 요청

Hyper-V 호스트와 HGS 간에 전송되는 모든 키와 중요한 정보는 메시지 수준에서 암호화됩니다. 즉, 정보는 HGS 또는 Hyper-V로 알려진 키로 암호화되어 누군가가 네트워크 트래픽을 스니핑하고 VM에 키를 훔칠 수 없습니다. 그러나 규정 준수 요구 사항이 있거나 Hyper-V와 HGS 간의 모든 통신을 암호화하려는 경우 전송 수준에서 모든 데이터를 암호화하는 SSL 인증서를 사용하여 HGS를 구성할 수 있습니다.

Hyper-V 호스트와 HGS 노드는 모두 사용자가 제공한 SSL 인증서를 신뢰해야 하므로 엔터프라이즈 인증 기관에서 SSL 인증서를 요청하는 것이 좋습니다. 인증서를 요청할 때 다음을 지정해야 합니다.

SSL 인증서 속성 필수 값
주체 이름 HGS 클라이언트(즉, 보호된 호스트)가 HGS 서버에 액세스하는 데 사용할 주소입니다. 일반적으로 분산 네트워크 이름 또는 VCO(가상 컴퓨터 개체)라고 하는 HGS 클러스터의 DNS 주소입니다. 이는 제공된 Initialize-HgsServer HGS 서비스 이름의 연결이며 HGS는 기본 이름입니다.
주체 대체 이름 다른 DNS 이름을 사용하여 HGS 클러스터에 도달하는 경우(예: 부하 분산 장치 뒤에 있거나 복잡한 토폴로지의 노드 하위 집합에 대해 다른 주소를 사용하는 경우) 인증서 요청의 SAN 필드에 해당 DNS 이름을 포함해야 합니다. SAN 확장이 채워지면 주체 이름이 무시되므로 SAN은 일반적으로 주체 이름에 넣을 값을 포함하여 모든 값을 포함해야 합니다.

HGS 서버를 초기화할 때 이 인증서를 지정하는 옵션은 첫 번째 HGS 노드 구성에서 다룹니다. 나중에 Set-HgsServer cmdlet을 사용하여 SSL 인증서를 추가하거나 변경할 수도 있습니다.

다음 단계