AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 444286
Accepted
Ryan Bolger
Ryan Bolger
Asked: 2012-11-01 23:15:20 +0800 CST2012-11-01 23:15:20 +0800 CST 2012-11-01 23:15:20 +0800 CST

在远程管理模式下为 Windows Server 2012(及更高版本)上的 RDP 配置自定义 SSL 证书?

  • 772

因此,Windows Server 2012 的发布删除了许多与远程桌面相关的旧配置实用程序。特别是,不再有远程桌面会话主机配置实用程序可让您访问 RDP-Tcp 属性对话框,该对话框让您配置自定义证书供 RDSH 使用。取而代之的是一个漂亮的新整合 GUI,它是新服务器管理器中整体“编辑部署属性”工作流程的一部分。问题是,只有安装了远程桌面服务角色(据我所知),您才能访问该工作流。

这似乎是微软方面的一个疏忽。当 Windows Server 2012 在默认远程管理模式下运行时,我们如何为 RDP 配置自定义 SSL 证书,而无需安装远程桌面服务角色?

ssl
  • 3 3 个回答
  • 100847 Views

3 个回答

  • Voted
  1. Best Answer
    Ryan Bolger
    2012-11-01T23:15:20+08:002012-11-01T23:15:20+08:00

    事实证明,RDSH 的大部分配置数据都存储在命名空间Win32_TSGeneralSetting中 WMI 的类中root\cimv2\TerminalServices。为给定连接配置的证书由该证书在名为 的属性上的指纹值引用SSLCertificateSHA1Hash。


    更新:这是一个通用的 Powershell 解决方案,可以在计算机的个人存储中获取并设置第一个 SSL 证书的指纹。如果您的系统有多个证书,您应该向命令添加一个-Filter选项以gci确保您引用了正确的证书。我在下面完整地保留了我的原始答案以供参考。

    # get a reference to the config instance
    $tsgs = gwmi -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"
    
    # grab the thumbprint of the first SSL cert in the computer store
    $thumb = (gci -path cert:/LocalMachine/My | select -first 1).Thumbprint
    
    # set the new thumbprint value
    swmi -path $tsgs.__path -argument @{SSLCertificateSHA1Hash="$thumb"}
    

    为了获得指纹值

    1. 打开证书的属性对话框并选择详细信息选项卡
    2. 向下滚动到 Thumbprint 字段并将空格分隔的十六进制字符串复制到记事本之类的东西中
    3. 从字符串中删除所有空格。您还需要注意并删除有时会在字符串中的第一个字符之前复制的非 ascii 字符。它在记事本中不可见。
    4. 这是您需要在 WMI 中设置的值。它应该看起来像这样:1ea1fd5b25b8c327be2c4e4852263efdb4d16af4。

    现在您有了指纹值,下面是您可以使用 wmic 设置值的单行代码:

    wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"
    

    或者,如果您喜欢 PowerShell,则可以改用它:

    $path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
    Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}
    

    注意:证书必须位于计算机帐户的“个人”证书存储中。

    • 86
  2. David Literak
    2018-02-28T13:32:33+08:002018-02-28T13:32:33+08:00

    如果您在尝试 Ryan 的解决方案时收到“无效参数”,请确保您使用的是提升的命令提示符(以管理员身份运行)。

    • 5
  3. FreeSoftwareServers
    2019-08-29T16:56:13+08:002019-08-29T16:56:13+08:00

    您需要将您domain.pfx 的指纹保存在一个 txt 文件SSLCertificateSHA1Hash.txt中。

    然后在CMD中运行:

    pushd %~dp0
    cls
    ::FreeSoftwareServers.com
    
    certutil.exe -p "" -importpfx "%~dp0domain.pfx"
    set /p FingerPrint=<"%~dp0SSLCertificateSHA1Hash.txt"
    wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="%FingerPrint%"
    icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\*" /grant "NETWORK SERVICE":R
    shutdown /r /t 5
    
    • 0

相关问题

  • 如何使用 Tomcat 5.5 更新 SSL 证书

  • 为 IIS6 自行生成 SSL 证书?

  • plesk 上的域和子域 ssl 访问

  • 如何设置 SSL 邮件服务器?

  • 如何通过 SVN 命令行接受 SSL 证书?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve