따라서 Windows Server 2012 릴리스에서는 이전 원격 데스크톱 관련 구성 유틸리티가 많이 제거되었습니다. 특히 RDSH에서 사용할 사용자 지정 인증서를 구성 할 수있는 RDP-Tcp 속성 대화 상자에 액세스 할 수있는 원격 데스크톱 세션 호스트 구성 유틸리티 가 더 이상 없습니다 . 대신 새 서버 관리자의 전체 “배포 속성 편집”워크 플로의 일부인 멋진 새 통합 GUI가 있습니다. 여기서 알 수있는 한 원격 데스크톱 서비스 역할이 설치되어있는 경우에만 해당 워크 플로에 액세스 할 수 있습니다.
이것은 마이크로 소프트 측에 대한 약간의 감독처럼 보인다. 원격 데스크톱 서비스 역할을 불필요하게 설치하지 않고 기본 원격 관리 모드에서 실행중인 Windows Server 2012에서 RDP에 대한 사용자 지정 SSL 인증서를 구성하려면 어떻게해야합니까?
답변
RDSH에 대한 많은 구성 데이터 Win32_TSGeneralSetting
가 root\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"}
지문 값을 얻으려면
- 인증서의 특성 대화 상자를 열고 세부 사항 탭을 선택하십시오.
- 지문 필드로 아래로 스크롤하여 공백으로 구분 된 16 진 문자열을 메모장과 같은 곳에 복사하십시오.
- 문자열에서 공백을 모두 제거하십시오. 또한 문자열에서 첫 번째 문자 바로 앞에 복사되는 ASCII가 아닌 문자를 조심해서 제거해야합니다. 메모장에 표시되지 않습니다.
- 이것은 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"}
참고 : 인증서는 컴퓨터 계정의 ‘개인’인증서 저장소에 있어야합니다.
답변
Ryan의 솔루션을 시도 할 때 “잘못된 매개 변수”가 표시되면 관리자 권한 명령 프롬프트를 사용 중인지 확인하십시오 (관리자 권한으로 실행).
답변
당신은 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