Подробный гайд: Сертификаты RDP в Windows 11 — проблема с переносом и сохранением

Пошаговое руководство по настройке и сохранению SSL-сертификата для RDP в Windows 11. Устраняем сброс при перезагрузке, настраиваем права и реестр.

2026.05.13                


Подробный гайд: Сертификаты RDP в Windows 11 — проблема с переносом и сохранениемПодробный гайд: Сертификаты RDP в Windows 11 — проблема с переносом и сохранением

В Windows 11 при настройке пользовательского сертификата для RDP часто возникает ситуация, когда:

  • Сертификат устанавливается, но после перезагрузки сбрасывается на самоподписанный
  • Значение SSLCertificateSHA1Hash в реестре удаляется системой
  • Подключение снова показывает предупреждение о недоверенном сертификате

Пошаговое решение: как правильно установить и сохранить сертификат

Шаг 1: Подготовка сертификата

1. Получите сертификат в формате .pfx (с закрытым ключом):
  • Бесплатно: FreeSSL.org, Let's Encrypt
  • Платно: коммерческие удостоверяющие центры
  • Конвертация из .pem/.key в .pfx:
   openssl pkcs12 -export -inkey private.key -in certificate.crt -out certificate.pfx
2. Импортируйте сертификат в хранилище компьютера:
  • Нажмите Win + R → введите certlm.msc
  • Перейдите: Личные → Сертификаты
  • ПКМ → Все задачи → Импорт → выберите .pfx файл
  • Убедитесь, что выбрано: Поместить все сертификаты в следующее хранилище: Личные

Шаг 2: Настройка прав доступа к закрытому ключу

Критически важный шаг, который часто пропускают:
  1. В certlm.msc найдите импортированный сертификат
  2. ПКМ → Все задачи → Управление закрытыми ключами
  3. Нажмите Добавить → введите NETWORK SERVICE → Проверить имена → ОК
  4. Выделите NETWORK SERVICE → поставьте галочку Чтение → ОК

Без этого права служба RDP не сможет использовать сертификат, и он будет сброшен.


Шаг 3: Получение отпечатка (Thumbprint) сертификата

  1. Откройте свойства сертификата → вкладка Состав
  2. Найдите поле Отпечаток (Thumbprint)
  3. Скопируйте значение и удалите все пробелы (включая невидимые символы!)
  4. Пример: bdbb88ce067de27743745ad7e7aa51ff13c2bcf8

Шаг 4: Привязка сертификата к RDP

Способ А: PowerShell (рекомендуется для Windows 11 24H2+)
# Замените THUMBPRINT на ваш отпечаток без пробелов
$thumbprint = "bdbb88ce067de27743745ad7e7aa51ff13c2bcf8"
Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices | Set-WmiInstance -Arguments @{SSLCertificateSHA1Hash="$thumbprint"}

В Windows 11 24H2 команда wmic устарела и может не работать.

Способ Б: Реестр (универсальный)
  1. Откройте regedit
2. Перейдите:
   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  1. Создайте параметр SSLCertificateSHA1Hash типа REG_BINARY
4. Введите отпечаток в шестнадцатеричном формате, через запятую:
   42,49,e1,6e,0a,f0,a0,2e,63,c4,5c,93,fd,52,ad,09,27,82,1b,01

Шаг 5: Перезапуск службы

Restart-Service -Name TermService -Force

Или через services.msc → Службы удалённых рабочих столов → Перезапустить


Почему сертификат может сбрасываться? Основные причины

Причина Решение
Нет прав Read у NETWORK SERVICE для закрытого ключа Выполните Шаг 2 выше
Конфликт групповых политик (GPO) Проверьте gpresult /h report.html на наличие политик, переопределяющих RDP
Автоматическое обновление самоподписанных сертификатов Отключите автогенерацию через реестр или настройте шаблон сертификата в домене
Неправильный формат отпечатка (пробелы, неверный регистр) Удаляйте все пробелы, используйте только строчные буквы
Обновления Windows сбрасывают настройки После крупных обновлений (24H2, 25H2) проверяйте настройки заново

Автоматизация: скрипт для установки сертификата

Сохраните как Set-RDPCertificate.ps1:
param(
    [string]$PfxPath,
    [string]$PfxPassword,
    [string]$CertStorePath = "Cert:\LocalMachine\My"
)

# Импорт сертификата
$securePassword = ConvertTo-SecureString -String $PfxPassword -Force -AsPlainText
Import-PfxCertificate -FilePath $PfxPath -CertStoreLocation $CertStorePath -Password $securePassword | ForEach-Object {
    $thumbprint = $_.Thumbprint
    Write-Host "Импорт завершён. Отпечаток: $thumbprint"

    # Привязка к RDP
    Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices | 
        Set-WmiInstance -Arguments @{SSLCertificateSHA1Hash="$thumbprint"}

    # Права для NETWORK SERVICE (требует прав администратора)
    $cert = Get-ChildItem $CertStorePath\$thumbprint
    $key = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
    $keyPath = "$env:ProgramData\Microsoft\Crypto\RSA\MachineKeys\$key"
    $acl = Get-Acl $keyPath
    $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("NETWORK SERVICE","Read","Allow")
    $acl.AddAccessRule($rule)
    Set-Acl $keyPath $acl

    Write-Host "Сертификат успешно применён к RDP"
}
Запуск:
.\Set-RDPCertificate.ps1 -PfxPath "C:\certs\rdp.pfx" -PfxPassword "YourPassword"

Проверка результата

  1. Подключитесь через mstsc.exe
  2. Нажмите на значок замка в верхней панели окна подключения
  3. Убедитесь, что отображается ваш сертификат, а не самоподписанный

Или через PowerShell:

(Get-CimInstance -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").SSLCertificateSHA1Hash

Сравните вывод с отпечатком вашего сертификата.


Важные замечания для Windows 11

  • Апрельские обновления 2026 изменили поведение при открытии .rdp-файлов: теперь по умолчанию показываются предупреждения безопасности
- Для отключения предупреждений можно:
  1. Подписать .rdp-файл через rdpsign.exe
  2. Добавить отпечаток сертификата в политику:
Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Connection Client → Specify SHA1 thumbprints of certificates representing trusted .rdp publishers
  • WMIC устарел в 24H2: используйте PowerShell или реестр вместо wmic

Совет:

Если вы работаете в домене, настройте автоматическую выдачу сертификатов через GPO и шаблон центра сертификации — это избавит от ручного обновления каждые 90 дней.

Если после всех шагов сертификат всё равно сбрасывается — проверьте журналы событий (eventvwr.msc → Журналы приложений и служб → Microsoft → Windows → TerminalServices-RemoteConnectionManager) на наличие ошибок при загрузке службы.