Шифрование TLS для RDP
Начиная с Windows 2008 в протоколе RDP по которому работает «Удалённый рабочий стол» добавился метод шифрования подключения с помощью SSL TLS. По умолчанию для шифрования используется самоподписанный сертификат. Установив сертификат от доверенного центра сертификации можно повысить защиту подключения и избавиться от предупреждений про неопознанный сервер при подключении. Вот как это сделать…
Речь в статье про сервер с одиночным удалённым рабочим столом или сервер терминалов не состоящий в домене Active Directory 1). Сначала нужно создать необходимые записи в DNS для сервера. Затем получить сертификат SSL TLS 2) для этих имён DNS. Потом сконвертировать сертификат в нужный формат. Установить сертификат на сервер. Настроить службы удалённый рабочих столов на использование этого сертификата. Создать и подписать файл подключения.
Сертификат используется бесплатный от StartSSL на три года. Для получения сертификата:
- подтвердим владение доменом в разделе Validations Wizard панели инструментов сайта StartSSL
- создадим запрос на получение сертификата CSR
openssl req -newkey rsa:2048 -keyout kasatkin.org.key -out kasatkin.org.csr
- получим сертификат через раздел Certificates Wizard используя наш CSR (возможно, понадобится установить пароль)
- в полученном наборе сертификатов распакуем архив OtherServer.zip
- теперь создадим PFX-файл 3) пригодный для Windows
- сольём воедино наш сертификат и сертификат промежуточного удостоверяющего центра:
cat 2_kasatkin.org.crt 1_Intermediate.crt > kasatkin.org.pem
- узнаем отпечаток SHA-1 сертификата (пригодится позже)
openssl x509 -noout -in kasatkin.org.pem -fingerprint -sha1 | sed 's/://g' SHA1 Fingerprint=44F5DC13FB2931XXXXA8453E32A978387EA045E4
- изменим формат контейнера сертификата
openssl pkcs12 -export -out kasatkin.org.pfx -inkey kasatkin.org.key -in kasatkin.org.pem
- скопируем PFX-файл сертификата на компьютер с Windows
- импортируем сертификат в системное хранилище:
- откроем оснастку управления сертификатами локальной машины: certlm.msc
- в раздел Personal импортируем PFX-файл нашего сертификата (возможно, понадобится ввести пароль)
- копируем импортированный сертификат (выделяем мышью, затем Ctrl+C)
- вставляем в раздел Remote Desktop (Ctrl+V)
- запускаем командную строку от имени Администратора и выполняем команду, подставляя своё значение отпеатка SHA-1 полученного ранее
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="44F5DC13FB2931XXXXA8453E32A978387EA045E4"
Всё, сертификат должен использоваться при подключении по RDP. Создаём RDP-файл подключения и подписываем его в командной строке Windows тем же сертификатом, что установили на сервер:
rdpsign /sha1 44F5DC13FB2931XXXXA8453E32A978387EA045E4 /v kasatkin.org.rdp