通过批处理授予“网络服务”对 RDP 证书的只读权限

通过批处理授予“网络服务”对 RDP 证书的只读权限

我正在通过将 SSL 证书添加到 Windows 主机来保护 RDP,当然,我正在编写所有脚本。我已经完成了 99%,唯一我不知道如何编写脚本的步骤与权限有关。

例如:https://superuser.com/questions/1093159/how-to-provide-a-verified-server-certificate-for-remote-desktop-rdp-connection/1093160#1093160

1.开始 > 运行 > mmc

2.文件 > 添加删除管理单元 > 证书 > 添加 > 计算机帐户 > 本地计算机 > 确定

3.在左侧窗口中右键单击“证书(本地计算机)个人”,选择“所有任务/导入…”

4.找到 pfx 文件并导入,我建议出于安全原因不要将其设置为可导出。

5.展开您的个人/证书,您现在应该会看到 3 个证书,其中一个是您的站点证书(例如 mysite.com)。右键单击此站点证书,然后右键单击,选择所有任务/管理私钥…

6.添加仅具有读取权限(而非完全控制)的用户“NETWORK SERVICE”,然后应用

7.关闭mmc

我正在尝试编写本指南中的第 6 步。有人知道从哪里开始吗?

答案1

实际上我发现有两种方法可以实现这一点。当然,更好的答案来自 StackOverflow,而不是 Microsoft。

您可以使用winhttpcertcfg.exe它,但必须单独下载,因为它不随 Windows 提供。另一个问题是它Full Control仅在Read需要时才授予权限。我没有找到纠正此问题的方法,但在搜索中我找到了更好的方法。

此命令将授予NETWORK SERVICE READSSL 证书目录中所有文件的权限:

icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\*" /grant "NETWORK SERVICE":R

https://docs.microsoft.com/en-us/microsoft-desktop-optimization-pack/appv-v4/how-to-modify-private-key-permissions-to-support-management-server-or-streaming-server

https://docs.microsoft.com/en-us/windows/win32/winhttp/winhttpcertcfg-exe--a-certificate-configuration-tool

https://blogs.technet.microsoft.com/operationsguy/2010/11/29/provide-access-to-private-keys-commandline-vs-powershell/

https://stackoverflow.com/questions/1678584/winhttpcertcfg-giving-access-to-iis-user-in-windows-7

相关内容