• Администрирование
  • Пересоздание сертификата для подключения по RDP

    #Предисловие

    Внезапно перестал отвечать по RDP рабочий компьютер на Windows 10. Со стороны подключения просто "Произошла внутренняя ошибка". В логах принимающего необычная ошибка за номером 1057:

    Серверу узла сеансов удаленных рабочих столов не удалось создать новый самозаверяющий сертификат для использования при проверке подлинности сервера узла сеансов удаленных рабочих столов при подключениях SSL. Код состояния: Указан неправильный алгоритм.

    Подключение надо восстановить, удалённый доступ к компьютеру нужен бывает часто.

    Чего только не делал для восстановления - переустанавливал службу, настраивал уровни безопасности, включал/отключал NLA, даже снёс КриптоПро с очисткой, так как изначально на него грешил. Отчаялся уже, но на второй день поисков нашёл рецепт.

    #Пересоздание самозаверяющегося сертификата для подключения по RDP

    Запустить в Powershell от Администратора

    Stop-Service termservice -Force
    Rename-Item "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" "MachineKeys_bak"
    Remove-Item "HKLM:\SOFTWARE\Microsoft\SystemCertificates\Remote Desktop" -Recurse -Force 
    Remove-Item "Cert:\LocalMachine\Remote Desktop" -Recurse -Force -ErrorAction SilentlyContinue
    $cert = New-SelfSignedCertificate `
        -DnsName $env:COMPUTERNAME `
        -CertStoreLocation "Cert:\LocalMachine\My" `
        -KeyUsage DigitalSignature,KeyEncipherment `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -HashAlgorithm SHA256 `
        -NotAfter (Get-Date).AddYears(2)
     
    $thumbprint = $cert.Thumbprint
    Write-Host "Thumbprint: $thumbprint"
    $path = (Get-WmiObject `
        -Class Win32_TSGeneralSetting `
        -Namespace root\cimv2\TerminalServices `
        -Filter "TerminalName='RDP-tcp'").__PATH
     
    Set-WmiInstance -Path $path -Argument @{ SSLCertificateSHA1Hash = $thumbprint }
    Start-Service termservice
    Get-Service termservice
    
    profile image of Wagood

    Wagood

    Wagood - это Гаврилов Алексей, веб-разработчик и программист. Имеет большой опыт в web-разработке, специализируется на backend-разработке средствами языка PHP. Акцент на работу в стеке Laravel и его экосистемы (Livewire, AlpineJS, Filament, Moonshine, API, Vue.js/Inertia.js, очереди, кеширование, поиск).

    ещё от Wagood