必须手动替换过期的自签名SSL证书:先用certlm.msc确认证书已过期,再以管理员身份运行PowerShell生成绑定局域网IP的新证书,接着用wmic命令将其设为RDP默认证书,最后将证书导入客户端“受信任的根证书颁发机构”。

Win10远程桌面连接时弹出“远程计算机SSL证书过期”警告,说明系统仍在使用已失效的自签名证书,而远程桌面服务未自动更新——这不是浏览器缓存问题,也不是时间偏差导致的误报,而是证书文件本身已超出有效期,必须手动替换。
确认当前证书是否真的过期
按下 Win + R,输入 certlm.msc 回车,打开本地计算机证书管理器。
依次展开 个人 → 证书,在右侧列表中查找颁发给本机名称(如 DESKTOP-XXXX)或 IP 地址的证书;双击打开 → 切换到“详细信息”选项卡 → 拉到底部查看“有效期至”字段。
若该日期早于 2026年9月25日,则证书确已过期,不可继续使用。
用PowerShell生成新的IP地址自签名证书
以管理员身份运行 PowerShell(右键开始菜单 → Windows PowerShell(管理员))。
执行以下命令,将 192.168.1.100 替换为你的实际局域网IP(不是127.0.0.1,也不是公网IP):
New-SelfSignedCertificate -FriendlyName 'RDP-IP-Cert' -Subject 'CN=192.168.1.100' -KeyUsage DigitalSignature,KeyEncipherment -NotBefore (Get-Date) -NotAfter (Get-Date).AddYears(3) -TextExtension @('2.5.29.17={text}DNS=192.168.1.100&IPAddress=192.168.1.100') -CertStoreLocation 'Cert:LocalMachineMy'
这一步会立即生成一张有效期三年、绑定指定IP且支持RDP所需的扩展字段的新证书。注意:【必须使用实际局域网IP,不能用主机名或localhost】,否则客户端仍会报“服务器名称不匹配”。
将新证书设为远程桌面服务默认证书
在同一个管理员 PowerShell 窗口中,先获取刚生成证书的指纹:
Get-ChildItem -Path 'Cert:LocalMachineMy' | Where-Object {$_.Subject -like "*192.168.1.100*"} | Format-List Thumbprint,Subject,NotAfter
复制输出结果中的 Thumbprint 值(共40位十六进制字符串,无空格)。
执行证书绑定命令(把 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 替换为你复制的指纹):
wmic /namespace:\rootcimv2TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
命令返回 Value = 0 表示成功。若提示“类不存在”,说明远程桌面服务未启用,请先在“系统属性 → 远程”中勾选“允许远程连接到此计算机”并重启服务。
让客户端信任这张新证书
方法一:图形界面导入(推荐给单台客户端)
在要连接的那台电脑上,按下 Win + R → 输入 certmgr.msc → 展开 受信任的根证书颁发机构 → 证书 → 右键空白处 → “所有任务 → 导入” → 浏览到本机 Cert:LocalMachineMy 中刚生成的证书(需先导出:回到证书管理器 → 右键该证书 → 所有任务 → 导出 → 选择“否,不导出私钥” → 格式选 Base-64 编码的X.509(.CER))→ 完成导入。
方法二:命令行批量导入(适用于多台客户端)
将导出的 rdp-cert.cer 文件复制到目标电脑,以管理员身份运行命令提示符,执行:certutil -addstore "Root" C:path o
dp-cert.cer
导入后无需重启,下次连接即不再弹出证书过期警告。


















