如何解决远程桌面服务中的证书配置问题?

如何解决远程桌面服务中的证书配置问题?

我正在设置远程桌面服务场,但在配置证书以供其使用时遇到了麻烦。我遇到的问题的演示可在步骤 #4 中找到。

此时,我确信用户界面存在问题,并正在寻找解决方法。是否有任何方法可以在远程桌面服务中配置证书,以便设置保留并反映在 GUI 中?如果没有,是否有任何方法可以让我验证设置是否正确?

步骤#1-创建要使用的证书。

我已配置了用于 RD Web 访问的证书。该证书存储在我的 RD 连接代理上的证书 MMC 中,我正在从该计算机配置场。 证书

我发现通过让 RD Web Access 生成自己的证书,需要以下属性:

  • 增强密钥使用
    • 服务器身份验证
    • 客户端身份验证
      • 这可能不是必需的,但自签名证书包含它。
  • 密钥用法
    • 电子签名
    • 密钥协议
  • 主题备用名称
    • DNS 名称 =domain.com

关于自签名证书生成的绕行

作为一个快速绕行,我能够解决使用 powershell 创建自签名证书的问题。新 RD 证书cmdlet 给出了以下示例:

PS C:\> $password = ConvertTo-SecureString -string "password" -asplaintext -force
New-RDCertificate -Role RDWebAccess -DnsName "test-rdwa.contoso.com" -Password $password -ConnectionBroker rdcb.contoso.com -ExportPath "c:\test-rdwa.pfx"

在 shell 中输入此命令将导致出现错误消息,提示Get-Server无法找到函数。在使用之前New-RDCertificate,您必须使用 导入 RemoteDesktop 模块Import-Module RemoteDesktop

步骤 #2 - 观察开箱即用的行为

第一次访问部署属性对话框时,通过导航至服务器管理器->远程桌面服务->集合,然后从“集合”分组中的“任务”下拉列表中选择“编辑部署属性”,您将看到以下屏幕: 在此处输入图片描述

此窗口具有误导性,因为该level字段被列为“未配置”。如果我理解正确的话,所有三个角色服务都使用自签名证书。对于 RD Web 访问角色,可以通过访问网站进行验证: 证书错误

正在使用的证书也会出现在证书 MMC 中: 显示 RD Web 访问证书的证书 MMC

步骤 3 - 分配新证书

“部署属性”对话框将允许我选择现有证书。证书必须放在本地计算机证书 MMC 中的“个人”证书存储中。私钥需要可导出,并且您需要提供密码。我暂时将证书导出到一个名为temp.pfx密码的文件,然后从那里将其导入远程桌面服务。

完成后,GUI 将指示它已准备好接受新的配置。 准备接受证书

一旦我单击“应用”按钮,GUI 就会显示成功。 在此处输入图片描述

可以通过再次访问 RD Web Access 网站来验证这一点。没有证书错误。 在此处输入图片描述

步骤#4-GUI无法维持其状态

如果关闭并重新打开 GUI,所有这些设置似乎都会丢失。 设置丢失

实际上,我配置的证书仍在使用。我可以继续访问 RD Web 访问站点,没有任何证书错误。

奇怪的是,如果我使用“创建新证书...”按钮生成自签名证书,此窗口将更新为“不受信任”级别。然后,此设置将通过打开和关闭“部署属性”对话框来维护。

我能做些什么来让我的设置看起来保持不变?当 GUI 提示我尚未完全配置证书时,我感觉有些不对劲。

答案1

我昨天检查了我们的农场,发现那是 Windows 2008...你的是 2012。我确信有很大的区别,但我希望我的信息有所帮助。

打开 MMC -> 证书 -> 计算机帐户我在“个人/证书”文件夹中看到 2 个证书:

  • 自签名证书(发行者和主体相同)
  • 由我们的域 CA 颁发的证书

自签名证书在详细信息中显示错误,你的证书是否有同样的错误? 错误

要解决此错误,只需将证书从“personal/Certificates”子文件夹复制并粘贴到“Trusted Root Certification Authorities/Certificates”即可。执行此步骤后,同一证书不会再出现错误。 合格证书

之后,我发现只有两个地方可以配置证书(在 RDS Windows 2008 中)。

我们的 RemoteApp 管理器显示: 主要的

数字签名设置: 决策支持系统

在“RD 会话主机配置”的连接设置中: 放射科

在最后,如果我记得正确的话,我们通过检查所有选项、事件查看器解决了这个问题,确保没有证书错误,填充一些本地组,通过安全策略授予他们访问权限...

祝你好运。

- - 更新 - -

请记住在“受信任的根证书颁发机构/证书”中导入用户配置文件、颁发者 CA 或证书(如果是自签名的),以便客户端不会收到任何证书错误。这一点在我们的系统中很重要。

答案2

我遇到了完全相同的问题,并找到了解决方法。这完全取决于您如何创建证书模板并请求证书。
以下是解决方法:

  1. 通过复制计算机模板来创建证书模板
  2. 编辑新证书和这两个重要的修改 2a. 允许导出私钥 2b. 在“主题名称”选项卡上,选择“在请求中提供”单选按钮
  3. 发布新模板
  4. 创建新请求并选择新模板
  5. 为 RDWeb 添加通用名称和 DNS。(我添加了所有 RD Farm 服务器)

例子:

CN=rdweb.域.本地

CN=rdcb.域.本地

CN=rdsh1.域.本地

CN=rdsh2.域.本地

CN=rdsh3.域.本地

rdweb.域.本地

rdcb.域.本地

rdsh1.域.本地

rdsh2.域.本地

rdsh3.域.本地

  1. 将 rdweb.domain.local 添加到友好名称,然后生成证书
  2. 使用私有方式导出证书
  3. 导入到 RD 部署控制台。

你完成所有这些操作后,级别将变为可信,状态变为正常

相关内容