원격 관리 모드에서 Windows Server 2012의 RDP에 대한 사용자 지정 SSL 인증서를 구성 하시겠습니까?


52

따라서 Windows Server 2012 릴리스에서는 이전 원격 데스크톱 관련 구성 유틸리티가 많이 제거되었습니다. 특히 RDSH에서 사용할 사용자 지정 인증서를 구성 할 수있는 RDP-Tcp 속성 대화 상자에 액세스 할 수있는 원격 데스크톱 세션 호스트 구성 유틸리티 가 더 이상 없습니다 . 대신 새 서버 관리자의 전체 "배포 속성 편집"워크 플로의 일부인 멋진 새 통합 GUI가 있습니다. 여기서 알 수있는 한 원격 데스크톱 서비스 역할이 설치되어있는 경우에만 해당 워크 플로에 액세스 할 수 있습니다.

이것은 마이크로 소프트 측에 대한 약간의 감독처럼 보인다. 원격 데스크톱 서비스 역할을 불필요하게 설치하지 않고 기본 원격 관리 모드에서 실행중인 Windows Server 2012에서 RDP에 대한 사용자 지정 SSL 인증서를 구성하려면 어떻게해야합니까?


답변:


80

RDSH에 대한 많은 구성 데이터 Win32_TSGeneralSettingroot\cimv2\TerminalServices네임 스페이스의 WMI 클래스에 저장되어 있습니다. 지정된 연결에 대해 구성된 인증서는라는 속성에서 해당 인증서의 지문 값으로 참조됩니다 SSLCertificateSHA1Hash.


업데이트 : 다음은 컴퓨터 개인 저장소에서 첫 번째 SSL 인증서의 지문을 잡고 일반화하는 Powershell 솔루션입니다. 시스템에 여러 인증서 -Filter가있는 gci경우 올바른 인증서를 참조하도록 명령에 옵션을 추가해야합니다 . 나는 원래의 대답을 참조 아래에 그대로 두었습니다.

# get a reference to the config instance
$tsgs = gwmi -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"

# grab the thumbprint of the first SSL cert in the computer store
$thumb = (gci -path cert:/LocalMachine/My | select -first 1).Thumbprint

# set the new thumbprint value
swmi -path $tsgs.__path -argument @{SSLCertificateSHA1Hash="$thumb"}

지문 값을 얻으려면

  1. 인증서의 특성 대화 상자를 열고 세부 사항 탭을 선택하십시오.
  2. 지문 필드로 아래로 스크롤하여 공백으로 구분 된 16 진 문자열을 메모장과 같은 곳에 복사하십시오.
  3. 문자열에서 공백을 모두 제거하십시오. 또한 문자열에서 첫 번째 문자 바로 앞에 복사되는 ASCII가 아닌 문자를 조심해서 제거해야합니다. 메모장에 표시되지 않습니다.
  4. 이것은 WMI에서 설정해야하는 값입니다. 다음과 같이 보일 것입니다 : 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4 .

지문 값이 있으므로 다음은 wmic를 사용하여 값을 설정하는 데 사용할 수있는 한 줄짜리입니다.

wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"

또는 PowerShell을 사용하는 경우 대신 다음을 사용할 수 있습니다.

$path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}

참고 : 인증서는 컴퓨터 계정의 '개인'인증서 저장소에 있어야합니다.


3
이것이 순수한 용해에서 저를 구했다고 덧붙였습니다. 감사합니다. technet 등에서 제안한대로 역할을 설치하고 서버를 다시 시작하는 것은 어리 석습니다. 그래도 RD 게이트웨이 관리자에 SSL 인증서를 설치하면 원격 관리자 로그인으로 이월되지 않습니다.
Papa

2
정말 감사합니다. 이것을 찾기 전에 모든 Google을 검색해야 합니다. "역할 및 기능 추가"를 통해 "원격 데스크톱 서비스"를 설치하라는 결과가 너무 많지만 도메인에 가입해야합니다.
Sethi

2
PS 스크립트를 사용하여 시도하면 "잘못된 매개 변수"가 표시됩니다. 내가 수동으로하는 경우에도 같은 문제가 발생합니다.
deed02392

1
나는 얻고 있었다 잘못된 인수 내가 인증서를 다시 가져올 때까지 모든 방법을 사용하여 포함하여 개인 키를. 간단한 실수.
toffitomek

2
다시 한번 : D 실행할 때 Powershell에서 "잘못된 매개 변수"오류가 발생합니다 wmic. 바닥에 메모를 보았습니다. 인증서가 개인 저장소에도 있는지 확인하십시오. 이번에는 웹 호스팅 스토어에 Mine이있었습니다.
Sethi

4

Ryan의 솔루션을 시도 할 때 "잘못된 매개 변수"가 표시되면 관리자 권한 명령 프롬프트를 사용 중인지 확인하십시오 (관리자 권한으로 실행).


이것이 공언이 없다고 믿을 수 없다!
Adrian Godong

0

당신은 domain.pfx & txt 파일에 지문 이 필요합니다 SSLCertificateSHA1Hash.txt.

그런 다음 CMD에서 이것을 실행하십시오.

pushd %~dp0
cls
::FreeSoftwareServers.com

certutil.exe -p "" -importpfx "%~dp0domain.pfx"
set /p FingerPrint=<"%~dp0SSLCertificateSHA1Hash.txt"
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="%FingerPrint%"
icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\*" /grant "NETWORK SERVICE":R
shutdown /r /t 5
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.