我们最近使用 SHA256 签名算法重新颁发了 GoDaddy 通配符证书(仅供参考,即使您不重新密钥,他们仍会在 72 小时内撤销旧证书,因此无论如何您都应该重新密钥)。我们将此证书用于我们的 RemoteApps、终端服务器的 RDP、RDGateway 和 RDWeb(IIS)。
当我在给定终端服务器(又称会话主机服务器)上的“RemoteApp 管理器”->“数字签名设置”中更改为新的通配符证书时,对于某些用户来说,从 RDWeb 连接到该终端服务器上发布的应用程序会失败,但对于所有用户来说,使用 .rdp 文件的连接都可以正常工作。此外,这是我见过的最奇怪的事情,错误的用户被记录为在网关被拒绝访问。如果我将证书改回旧的、已撤销的证书,那么一切都会正常。
工作设置:
- 所有 Windows 2008 R2 数据中心服务器
- RDGateway+RDWeb - rdsgateway.contoso.com(为 IIS 和 rdgateway 安装了新的通配符证书)
- TS - ts1.contoso.com(仅为 RDP 安装的新通配符证书,为 RemoteAPP 安装了旧证书)
非工作设置:
- 所有 Windows 2008 R2 数据中心服务器
- RDGateway+RDWeb - rdsgateway.contoso.com(为 IIS 和 rdgateway 安装了新的通配符证书)
- TS - ts1.contoso.com(为 RDP 安装的新通配符证书,为 RemoteAPP 安装了新证书)
使用用户从 RDWeb 启动时“CONTOSO\bob”会产生以下错误:
远程桌面无法连接到远程计算机“ts1.contoso.com”,原因如下:1) 您的用户帐户未列在 RD 网关的权限列表中 2) 您可能已以 NetBIOS 格式指定了远程计算机...
当我查看事件日志“Microsoft-Windows-TerminalServices-Gateway/Operational”时,我看到以下错误:
用户“CONTOSO\alice”客户端计算机“123.123.123.123”上的 不符合资源授权策略要求,因此无权访问资源“ts1.contoso.com”。出现以下错误:“23002”。
发生了什么事?为什么更改 RemoteApp 的签名证书会导致网关认为这是不同的用户连接?
答案1
遇到同样的问题后找到了这个页面。对于我们来说,解决方案是将端口 3389 添加到防火墙上的环回(又名 Hairpin NAT)。
一些额外的细节:
更换证书比第一次安装证书更棘手,但我认为我们做得对,应用程序运行了一两天都没问题。用户在启动时开始遇到错误,我们最终在这里使用了 powershell 脚本https://gallery.technet.microsoft.com/Change-published-FQDN-for-2a029b80重新发布服务器的 FQDN。
我认为此脚本一定在配置中从未指定过的部分设置了 FQDN,导致 RD 网关通过其 FQDN 引用自身来传递请求。这些请求失败,因为我们的边缘防火墙只允许 80 和 443 接收和回送请求。
将端口 3389 添加到防火墙的环回规则后问题立即得到解决。