Định cấu hình chứng chỉ SSL tùy chỉnh cho RDP trên Windows Server 2012 ở chế độ Quản trị từ xa?


52

Vì vậy, việc phát hành Windows Server 2012 đã loại bỏ rất nhiều tiện ích cấu hình liên quan đến Remote Desktop cũ. Đặc biệt, không có tiện ích Cấu hình máy chủ phiên máy tính từ xa nào cung cấp cho bạn quyền truy cập vào hộp thoại thuộc tính RDP-Tcp cho phép bạn định cấu hình chứng chỉ tùy chỉnh cho RDSH để sử dụng. Thay vào đó là một GUI hợp nhất mới, là một phần của quy trình "chỉnh sửa các thuộc tính triển khai" trong Trình quản lý máy chủ mới. Điều hấp dẫn là bạn chỉ có quyền truy cập vào quy trình công việc đó nếu bạn đã cài đặt vai trò Dịch vụ Máy tính Từ xa (theo như tôi có thể nói).

Điều này có vẻ như một chút giám sát về phần của Microsoft. Làm cách nào chúng tôi có thể định cấu hình chứng chỉ SSL tùy chỉnh cho RDP trên Windows Server 2012 khi nó chạy ở chế độ Quản trị từ xa mặc định mà không cần cài đặt vai trò Dịch vụ máy tính từ xa?


Câu trả lời:


80

Nó chỉ ra rằng phần lớn dữ liệu cấu hình cho RDSH được lưu trữ trong Win32_TSGeneralSettinglớp trong WMI trong root\cimv2\TerminalServiceskhông gian tên. Chứng chỉ được cấu hình cho một kết nối nhất định được tham chiếu bởi giá trị Thumbprint của chứng chỉ đó trên một thuộc tính được gọi SSLCertificateSHA1Hash.


CẬP NHẬT: Đây là một giải pháp Powershell tổng quát, lấy và đặt dấu vân tay của chứng chỉ SSL đầu tiên trong cửa hàng cá nhân của máy tính. Nếu hệ thống của bạn có nhiều certs, bạn nên thêm một -Filtertùy chọn cho gcilệnh để đảm bảo bạn tham chiếu chứng chỉ chính xác. Tôi đã để lại câu trả lời ban đầu của tôi nguyên vẹn bên dưới này để tham khảo.

# 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"}

Để có được giá trị vân tay

  1. Mở hộp thoại thuộc tính cho chứng chỉ của bạn và chọn tab Chi tiết
  2. Cuộn xuống trường Thumbprint và sao chép chuỗi hex được phân tách bằng dấu cách vào một cái gì đó như Notepad
  3. Xóa tất cả các khoảng trắng khỏi chuỗi. Bạn cũng sẽ muốn coi chừng và loại bỏ một ký tự không phải ascii đôi khi được sao chép ngay trước ký tự đầu tiên trong chuỗi. Nó không hiển thị trong Notepad.
  4. Đây là giá trị bạn cần đặt trong WMI. Nó sẽ trông giống như thế này: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4 .

Bây giờ bạn đã có giá trị vân tay, đây là một lớp lót bạn có thể sử dụng để đặt giá trị bằng wmic:

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

Hoặc nếu PowerShell là thứ của bạn, bạn có thể sử dụng cái này thay thế:

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

Lưu ý: chứng chỉ phải nằm trong Kho chứng chỉ 'Cá nhân' cho tài khoản Máy tính.


3
Chỉ muốn thêm rằng điều này đã cứu tôi khỏi meltdown thuần túy. Cảm ơn bạn. Cài đặt các vai trò và khởi động lại máy chủ theo đề xuất trong Technet và tương tự là vô lý. Ngay cả sau đó, khi bạn cài đặt chứng chỉ SSL trong Trình quản lý cổng RD, nó sẽ không chuyển sang đăng nhập quản trị viên từ xa.
Papa

2
Cảm ơn rất nhiều vì điều này. Tôi phải tìm kiếm tất cả google trước khi tôi tìm thấy cái này. Có quá nhiều kết quả bảo tôi cài đặt "Dịch vụ máy tính từ xa" thông qua "Thêm vai trò và tính năng", nhưng làm như vậy đòi hỏi bạn phải tham gia một tên miền.
Sethi

2
Nếu tôi cố gắng thực hiện bằng tập lệnh PS của mình, tôi nhận được "Tham số không hợp lệ". Vấn đề tương tự nếu tôi cũng làm thủ công, ...
deed02392

1
Tôi đã nhận được đối số không hợp lệ bằng cách sử dụng tất cả các phương thức cho đến khi tôi nhập lại chứng chỉ bao gồm các khóa riêng. Sai lầm đơn giản.
toffitomek

2
Tôi lại nhắc: D Tôi cũng gặp lỗi "Tham số không hợp lệ" trong Powershell khi chạy wmic. Chỉ cần nhìn thấy ghi chú ở phía dưới. Hãy chắc chắn rằng chứng chỉ cũng có trong cửa hàng Cá nhân. Của tôi đã có trong cửa hàng Web Hosting lần này ...
Sethi

4

Nếu bạn nhận được "Thông số không hợp lệ" khi bạn thử giải pháp của Ryan, hãy đảm bảo bạn đang sử dụng dấu nhắc lệnh nâng cao (chạy với tư cách quản trị viên).


Không thể tin rằng điều này không có upvote!
Adrian Godong

0

Bạn cần domain.pfx & dấu vân tay của bạn trong một tệp txt SSLCertificateSHA1Hash.txt.

Sau đó chạy cái này trong 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.