如何为Windows 10的远程桌面(RDP)连接提供经过验证的服务器证书

金子

我们在办公室中有一台Windows 10 Pro计算机,该计算机具有一个开放的Internet连接端口,用于传入的远程桌面连接(“主机”)。它受复杂的密码和有限次数的允许尝试(只有TLS 1.1或更高版本)很好的保护,但是它不提供外部验证的SSL证书,仅提供远程桌面服务提供的自行生成的自签名证书,并且给我们两个问题:

  1. 当我们进行远程连接时,我们并不是完全有信心,实际上我们是在连接这台计算机,而不是某些劫持连接。
  2. 我们的网站未通过PCI-DSS 3.1符合性检查(必填项,因为我们使用的是通过互联网连接的销售点借记卡/信用卡机,因此未通过)。该检查报告此面向Internet的远程桌面端口上的致命错误:“ SSL自签名证书”和“主机名错误的SSL证书”。

如何获得充当服务器/主机的Windows 10 Pro(或Windows 7/8 / 8.1 Pro)计算机,以提供适当的SSL证书进行远程桌面验证?

金子

您可以将此主机设置为使用并提供您的(现有的,购买的)外部验证的SSL证书,从而(说明可能也适用于Windows 8和8.1,可能适用于Windows 7,也可能不适用)(部分内容基于Microsoft KB 2001849):

首先,您需要购买正版的经过验证的ssl证书。

如果您具有pkcs12格式文件(例如pfx扩展名)中的此证书,则可以使用Linux或Cygwin查看SHA1指纹(因此,您将在下面需要它):

openssl pkcs12 -in mysite.pfx -nodes|openssl x509 -noout -fingerprint

或者,如果您的Linux服务器中有单独的证书文件,位于/etc/ssl(/etc/ssl/certs/mysite.crt、/etc/ssl/mysite.ca-bundle和/etc/ssl/private/mysite.key ),您可以创建pfx文件并获取SHA1指纹,从而:

  1. 如果您没有证书,请为其创建pfx文件(此处为:mysite.pfx)–在请求时设置一个好的密码:

    sudo openssl pkcs12  -export -out mysite.pfx -inkey /etc/ssl/private/mysite.pem -in /etc/ssl/certs/mysite.crt -certfile /etc/ssl/mysite.ca-bundle
    
  2. 根据需要移动或复制此pfx文件,以便Windows主机可以访问它。

  3. 查看密钥的SHA1指纹(您将在下面使用此指纹):

openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint

将pkcs12格式(例如pfx)文件导入Windows主机的个人证书存储中:

  1. 开始>运行> mmc
  2. 文件>添加删除管理单元>证书>添加>计算机帐户>本地计算机>确定
  3. 在左侧窗口中,右键单击“证书(本地计算机)个人”,选择“所有任务/导入…”。
  4. 找到pfx文件并导入它,出于安全原因,我建议您不要使其可导出。
  5. 扩展您的个人/证书,您现在应该看到3个证书,其中之一是您的站点证书(例如,mysite.com)。右键单击此站点证书,然后单击鼠标右键,选择“所有任务” /“管理私钥”。
  6. 添加仅具有读取权限(不是完全控制)的用户“网络服务”,然后应用
  7. 关闭mmc

使用regedit在处添加一个名为SSLCertificateSHA1Hash的新二进制值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp它需要的值是上面获得的证书的SHA1指纹:右键单击新值,选择“修改”,然后依次键入十六进制代码(没有冒号,空格或逗号,字母不区分大小写)–总共20个十六进制对(40个字符)。

您可能需要重新启动主机,或重新启动远程桌面服务(从Services.msc),然后才能运行。

现在,使用正确的站点名称(例如,mysite.com)与该主机建立远程桌面连接后,您应该在顶部连接栏的左侧看到一个锁定的挂锁:单击此按钮可显示该远程服务器的身份计算机已验证。从Internet一直打开到该主机的端口现在应该通过PCI-DSS 3.1主机名测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法将RDP导入GCE上的Windows服务器:没有可用的远程桌面许可证服务器

如何在每位用户的Ubuntu服务器上创建远程桌面服务器

如何恢复远程桌面 (RDP) 断开连接确认窗口

禁用Windows防火墙服务后,我无法将远程桌面(RDP)远程连接到计算机

远程桌面连接-如何获取证书提示?

如何为在Django中输入正确的文件路径(远程或本地服务器)提供验证检查?

Windows客户端和Ubuntu服务器的最佳远程桌面协议

使用 .NET 检查 Windows 服务器上是否安装了远程桌面服务 (RDS)/远程桌面会话主机 (RDSH)

Windows 10“远程桌面连接已停止工作。”

无法使用远程桌面连接到Windows 10 VM

使用Azure AD凭据的Windows 10远程桌面连接

如何验证LDAP + SSL连接的服务器SSL证书

Windows 10的远程桌面要求智能卡服务

如何为现有/本地桌面设置RDP服务器?

如何通过网络级身份验证连接到Windows Server 2008远程桌面

如何为Windows 10删除Ubuntu

无法使用RDP文件在Windows 8.1中与远程桌面连接

如何在Linux中使用远程桌面(RDP)连接到Microsoft Azure(MSA)Windows Server(WIN)

远程桌面-如何在Windows 10中启用RemoteApp服务?

按键Windows远程桌面连接?

如何在远程桌面查看器中使用RDP协议?

远程桌面别名(Windows 7 或 10)

Windows 10远程桌面凭据

如何为所有用户设置远程桌面连接?

如何远程桌面 (RDP) 到 Azure Pipelines 的托管代理

Windows 10 v1903在Windows远程桌面用户断开连接时挂起Microsoft Outlook

使用Windows远程桌面从Windows 10连接到Ubuntu 15.04吗?

如何连接与远程服务器的反应

固定在Windows 10上的Chrome远程桌面后,窗帘模式断开连接