![如何解决远程桌面服务中的证书配置问题?](https://linux22.com/image/799088/%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E6%9C%8D%E5%8A%A1%E4%B8%AD%E7%9A%84%E8%AF%81%E4%B9%A6%E9%85%8D%E7%BD%AE%E9%97%AE%E9%A2%98%EF%BC%9F.png)
我正在设置远程桌面服务场,但在配置证书以供其使用时遇到了麻烦。我遇到的问题的演示可在步骤 #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 中:
步骤 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
我遇到了完全相同的问题,并找到了解决方法。这完全取决于您如何创建证书模板并请求证书。
以下是解决方法:
- 通过复制计算机模板来创建证书模板
- 编辑新证书和这两个重要的修改 2a. 允许导出私钥 2b. 在“主题名称”选项卡上,选择“在请求中提供”单选按钮
- 发布新模板
- 创建新请求并选择新模板
- 为 RDWeb 添加通用名称和 DNS。(我添加了所有 RD Farm 服务器)
例子:
CN=rdweb.域.本地
CN=rdcb.域.本地
CN=rdsh1.域.本地
CN=rdsh2.域.本地
CN=rdsh3.域.本地
rdweb.域.本地
rdcb.域.本地
rdsh1.域.本地
rdsh2.域.本地
rdsh3.域.本地
- 将 rdweb.domain.local 添加到友好名称,然后生成证书
- 使用私有方式导出证书
- 导入到 RD 部署控制台。
你完成所有这些操作后,级别将变为可信,状态变为正常