rdpsign 失败,错误 0x80092004

rdpsign 失败,错误 0x80092004

在运行 Windows Server 2016 的 RDSH 服务器上,安装了以下证书:

  • 由...发出:COMODO RSA Domain Validation Secure Server CA
  • 发给:*.internal.<Internet domain name>
  • 有效期:2017/07/18
  • 有效期至: 2018/07/19
  • SHA-1 指纹:‎02 e5 52 95 aa 2d 9f a5 fb ad 82 97 0e 66 5d a9 73 db 00 ca
  • 私钥:是

我们需要使用上述证书签署 RDP 文件,研究强烈建议使用 rdpsign。

我执行了rdpsign -?输出以下内容的命令:

NAME

rdpsign [options] [items to sign]

OPTIONS

  /sha256 HASH
       Specified the SHA256 hash of the signing certificate.
  /q
       Quiet mode:  No output when success, minimal output when failed.
  /v
       Verbose mode:  Display all warnings, messages, and status.
  /l
       Test signing and output results without actually replacing any of the inputs.  Ignores when input files are on stdin.


All rdp file(s) have been succesfully signed.

因此,与官方的、现已过时的文档rdpsign需要证书的 SHA-256 哈希。

但是,IIS 管理器和证书管理器仅提供证书的 SHA-1 指纹。

https://knowledge.symantec.com/support/identity-protection-support/index?page=content&id=SO28771&actp=RSS&viewlocale=en_US建议使用 OpenSSL 获取证书的各种哈希值,包括 SHA-256。

我将不包含私钥的证书导出为 base64 编码的 X.509 CER 文件。

我执行了openssl x509 -noout -fingerprint -sha1 -inform pem -in <file name>.cer输出以下内容的命令:

SHA1 Fingerprint=02:E5:52:95:AA:2D:9F:A5:FB:AD:82:97:0E:66:5D:A9:73:DB:00:CA

因此,我们可以确信 OpenSSL 输出的信息是准确的,因为 SHA-1 指纹匹配。

我执行了openssl x509 -noout -fingerprint -sha256 -inform pem -in <file name>.cer输出以下内容的命令:

SHA256 Fingerprint=D7:44:A5:BA:94:56:B0:9F:26:D2:2B:88:92:84:11:74:35:23:71:87:30:FD:CE:D0:B1:35:6B:D8:DA:A6:A1:7B

我执行了提升的(以管理员身份运行)命令rdpsign /sha256 D744A5BA9456B09F26D22B88928411743523718730FDCED0B1356BD8DAA6A17B <file name>.rdp /v,,rdpsign /sha256 "D744A5BA9456B09F26D22B88928411743523718730FDCED0B1356BD8DAA6A17B" <file name>.rdp /v并且rdpsign /sha256 d744a5ba9456b09f26d22b88928411743523718730fdced0b1356bd8daa6a17b <file name>.rdp /v所有命令均输出以下内容:

Unable locate the certificate specified.  Error Code: 0x80092004
The rdp file could not be signed.  Error Code: 0x80092004

我发现网上几乎没有关于这个问题的资料。有人能给出建议吗?

答案1

我猜这个参数名称有点误导。它似乎假设使用 SHA-256 算法对文件进行签名,但接受 SHA-1 证书指纹作为值。

已测试rdpsign 工具Windows 10机器,并能够使用已安装证书的 SHA-1 指纹(该证书具有签名哈希算法 SHA-256)对 RDP 文件进行签名。如果您的证书可以对其进行签名,则以下命令应该可以执行此操作。

rdpsign.exe /sha256 02e55295aa2d9fa5fbad82970e665da973db00ca <rdp file path>

当我使用具有 SHA-1 签名算法的旧证书时,rdpsign.exe 会生成错误:

无法使用指定的证书进行签名。错误代码:0x8007000d 无法对 rdp 文件进行签名。错误代码:0x8007000d

答案2

根据微软文章 远程桌面侦听器证书配置...

在运行 wmic 命令之前,必须将要使用的证书导入到计算机帐户的个人证书存储中。如果不导入证书,您将收到无效参数错误。

意义:

点击星级菜单,输入certlm.msc然后按 Enter 打开证书本地计算机。

选择个人商店并右键单击进口 .pfx.p12证书。

导入后,双击证书,单击“详细信息”选项卡,然后向下滚动到“指纹字段”。

在此处输入图片描述

在此处输入图片描述

相关内容