{"id":770,"date":"2026-09-19T23:40:08","date_gmt":"2026-09-19T23:40:08","guid":{"rendered":"https:\/\/windows-vps.org\/blog\/?p=770"},"modified":"2026-09-19T23:40:08","modified_gmt":"2026-09-19T23:40:08","slug":"rdp-connection-failures-credssp-nla-certificate-event-ids","status":"publish","type":"post","link":"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/","title":{"rendered":"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Most RDP failures arrive with one of five on-screen messages, and each one narrows the cause to a handful of components. Rather than guessing at firewall rules or reinstalling the Remote Desktop Services role, map the message to a Windows event and work backward. The logs that matter are on the server, not the client.<\/p>\n\n\n\n<h2 class=\"wp-element-heading wp-block-heading\">Error Message to Event ID Map<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Client message<\/th><th>Where to look<\/th><th>Root cause class<\/th><\/tr><\/thead><tbody><tr><td>&quot;An authentication error has occurred. The function requested is not supported&quot;<\/td><td>Client: Event 36871 in System log<\/td><td>CredSSP encryption oracle remediation mismatch<\/td><\/tr><tr><td>&quot;The remote computer requires Network Level Authentication&quot;<\/td><td>Server: Event 4625 in Security log<\/td><td>NLA enabled server, client cannot pre-auth<\/td><\/tr><tr><td>&quot;Your credentials did not work&quot; after a correct password<\/td><td>Server: 4625 with status 0xC000006D<\/td><td>Account lockout, NLA, or restricted logon type<\/td><\/tr><tr><td>&quot;An internal error has occurred&quot;<\/td><td>Server: TermDD Event 56, or 1058<\/td><td>Certificate or licensing service fault<\/td><\/tr><tr><td>Connection hangs at &quot;Securing remote connection&quot;<\/td><td>Both: TLS handshake, then 36888<\/td><td>Certificate\/TLS version negotiation failure<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Enable the client-side operational log before you reproduce the failure, or you will be diagnosing from memory: <code>eventvwr.msc<\/code> &rarr; Applications and Services Logs &rarr; Microsoft &rarr; Windows &rarr; TerminalServices-ClientActiveXCore. On the server use RemoteDesktopServices-RdpCoreTS and RemoteConnectionManager.<\/p>\n\n\n\n<h2 class=\"wp-element-heading wp-block-heading\">Fix 1: CredSSP Encryption Oracle Remediation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the most common failure after a Windows Update cycle. The server enforces <code>Mitigated<\/code> or <code>Force Updated Clients<\/code> while the client is on an older build that still proposes the vulnerable version. Client Event 36871 names the exact mismatch. The fix belongs on the <em>client<\/em> side wherever possible &mdash; patching is always better than relaxing the server. Only if you cannot patch an embedded or legacy endpoint should you adjust the server policy, and then to <code>Mitigated<\/code>, never <code>Vulnerable<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>reg add &quot;HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\CredSSP\\Parameters&quot; \/v EncryptionOracleRemediation \/t REG_DWORD \/d 2 \/f<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Reboot is not required, but the client must reconnect. Set the same value on <code>CredSSP\\Client<\/code> if you are relaxing a client temporarily during migration, and remove the exception once the patch lands.<\/p>\n\n\n\n<h2 class=\"wp-element-heading wp-block-heading\">Fix 2: NLA Enabled but Client Cannot Pre-Authenticate<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">NLA forces authentication before a session is allocated, which is a genuine security gain and should stay enabled. When it breaks, the cause is usually one of three things: the user is not permitted the <code>Remote Desktop Users<\/code> membership that NLA requires, the account is a local account on a machine whose NLA path expects domain credentials, or CredSSP itself is failing. Confirm the requirement before loosening anything:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-ItemProperty &quot;HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp&quot; `\n  -Name UserAuthentication<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A value of 1 means NLA is required. Turning it off to make a client work is a downgrade that exposes the logon screen to pre-auth; fix the credential path instead when the endpoint is internet-facing.<\/p>\n\n\n\n<h2 class=\"wp-element-heading wp-block-heading\">Fix 3: Certificate and &quot;Internal Error&quot; Failures<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Check certificate expiry.<\/strong> The default self-signed RDP certificate expires after one year. Query it with <code>Get-ChildItem Cert:\\LocalMachine\\RemoteDesktop<\/code>; a past NotAfter date produces TermDD 56 and a generic client error.<\/li><li><strong>Bind the right certificate.<\/strong> In the RDP-Tcp properties, select a certificate whose subject matches the public hostname users type. A mismatch surfaces as a warning on some clients and a hard failure on others.<\/li><li><strong>Verify the private key is present.<\/strong> Exporting a certificate without its key and re-importing it gives a certificate that looks valid but cannot complete a handshake. Check with <code>certutil -verifystore RemoteDesktop<\/code>.<\/li><li><strong>Confirm the licensing service.<\/strong> A stopped Remote Desktop Licensing service can produce 1058 and a refused connection even when the grace period has not expired.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-element-heading wp-block-heading\">Fix 4: Connecting but Disconnecting Immediately<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If authentication succeeds and the session closes within seconds, look at logon restrictions rather than transport. Check <code>Allow log on through Remote Desktop Services<\/code> in Local Security Policy, confirm no denial via <code>Deny log on through Remote Desktop Services<\/code> for the group the user belongs to, and inspect profile loading. A corrupted user profile hive causes the session to terminate during logon with Event 1500 or 1508 in the User Profile Service log. Server-side profile corruption is common when a session host runs low on disk, which is why storage monitoring on <a href=\"https:\/\/windows-vps.org\/\">hosted Windows server instances<\/a> should alert on free space before it reaches 10%.<\/p>\n\n\n\n<h2 class=\"wp-element-heading wp-block-heading\">Fix 5: Intermittent Drops Mid-Session<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Random disconnects after a stable logon usually trace to idle session limits or a UDP transport problem. Check the policy path <code>Computer Configuration &rarr; Administrative Templates &rarr; Windows Components &rarr; Remote Desktop Services &rarr; Remote Session Host &rarr; Session Time Limits<\/code>. On RDP over UDP, a broken NAT path causes the client to negotiate UDP then fall back noisily; disabling UDP transport on the server is a legitimate fix for networks that cannot pass it reliably, at a small latency cost on lossy links.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Brute-force lockouts deserve separate treatment, since repeated 4625 events from external addresses are an attack signature rather than a configuration fault. Restricting RDP behind a VPN or gateway, and applying the hardening steps covered in <a href=\"https:\/\/windows-vps.org\/\">the RDP security hardening guides<\/a>, removes the noise well before it becomes an incident.<\/p>\n\n\n\n<h2 class=\"wp-element-heading wp-block-heading\">Reading the Server Log When the Client Says Nothing Useful<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Clients are often vague, but the server is specific. Set the RemoteDesktopServices-RdpCoreTS operational log to Verbose temporarily, reproduce the failure once, then return it to Warning. The listener state is the fastest sanity check: RDP-Tcp should report Listen rather than Idle, and the RDP listener port should be 3389 unless you have deliberately moved it. If the listener is Idle, the transport is not the problem and every firewall change is wasted effort. Equally, a server that responds to <code>Test-NetConnection -Port 3389<\/code> has proven the network path already.<\/p>\n\n\n\n<h2 class=\"wp-element-heading wp-block-heading\">Triage Order That Saves Time<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Read the client message, find the matching event ID, confirm the server-side setting, then change the least-privileged component. Reboot only after a registry or certificate change that the service cannot reload, and always keep an out-of-band console available before you touch RDP settings on a remote-only machine.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>A triage playbook for RDP failures: map the on-screen error to the exact event ID, then fix CredSSP encryption oracle, NLA mismatch, and expired self-signed certificate problems.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-770","post","type-post","status-publish","format-standard","hentry","category-tutorials-guides"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID - Windows VPS Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID\" \/>\n<meta property=\"og:description\" content=\"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID\" \/>\n<meta property=\"og:url\" content=\"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/\" \/>\n<meta property=\"og:site_name\" content=\"Windows VPS Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-19T23:40:08+00:00\" \/>\n<meta name=\"author\" content=\"windows-vps\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"windows-vps\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/\",\"url\":\"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/\",\"name\":\"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID - Windows VPS Blog\",\"isPartOf\":{\"@id\":\"https:\/\/windows-vps.org\/blog\/#website\"},\"datePublished\":\"2026-09-19T23:40:08+00:00\",\"author\":{\"@id\":\"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/44caceed916d0db318aa08d5623a7a58\"},\"breadcrumb\":{\"@id\":\"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/windows-vps.org\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/windows-vps.org\/blog\/#website\",\"url\":\"https:\/\/windows-vps.org\/blog\/\",\"name\":\"Windows VPS Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/windows-vps.org\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/44caceed916d0db318aa08d5623a7a58\",\"name\":\"windows-vps\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3f2573db5afcd1a6ab9abcc5d48fc8e42584bc87ab9d98cc156e5b2097766dd9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3f2573db5afcd1a6ab9abcc5d48fc8e42584bc87ab9d98cc156e5b2097766dd9?s=96&d=mm&r=g\",\"caption\":\"windows-vps\"},\"sameAs\":[\"https:\/\/windows-vps.org\/blog\"],\"url\":\"https:\/\/windows-vps.org\/blog\/author\/myxiechengxuan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID - Windows VPS Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/","og_locale":"en_US","og_type":"article","og_title":"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID","og_description":"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID","og_url":"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/","og_site_name":"Windows VPS Blog","article_published_time":"2026-09-19T23:40:08+00:00","author":"windows-vps","twitter_card":"summary_large_image","twitter_misc":{"Written by":"windows-vps","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/","url":"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/","name":"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID - Windows VPS Blog","isPartOf":{"@id":"https:\/\/windows-vps.org\/blog\/#website"},"datePublished":"2026-09-19T23:40:08+00:00","author":{"@id":"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/44caceed916d0db318aa08d5623a7a58"},"breadcrumb":{"@id":"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/windows-vps.org\/blog\/rdp-connection-failures-credssp-nla-certificate-event-ids\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/windows-vps.org\/blog\/"},{"@type":"ListItem","position":2,"name":"RDP Connection Failures: Diagnosing CredSSP, NLA, and Certificate Errors by Event ID"}]},{"@type":"WebSite","@id":"https:\/\/windows-vps.org\/blog\/#website","url":"https:\/\/windows-vps.org\/blog\/","name":"Windows VPS Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/windows-vps.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/44caceed916d0db318aa08d5623a7a58","name":"windows-vps","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3f2573db5afcd1a6ab9abcc5d48fc8e42584bc87ab9d98cc156e5b2097766dd9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3f2573db5afcd1a6ab9abcc5d48fc8e42584bc87ab9d98cc156e5b2097766dd9?s=96&d=mm&r=g","caption":"windows-vps"},"sameAs":["https:\/\/windows-vps.org\/blog"],"url":"https:\/\/windows-vps.org\/blog\/author\/myxiechengxuan\/"}]}},"_links":{"self":[{"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/posts\/770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/comments?post=770"}],"version-history":[{"count":1,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/posts\/770\/revisions"}],"predecessor-version":[{"id":774,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/posts\/770\/revisions\/774"}],"wp:attachment":[{"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/media?parent=770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/categories?post=770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/tags?post=770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}