Ssl-Certificate

rdpsign 失敗並出現錯誤 0x80092004

  • July 27, 2017

在執行 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。

我將沒有私鑰的證書導出到 base-64 編碼的 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

我發現網上幾乎沒有任何與此問題相關的內容。任何人都可以建議嗎?

我猜參數名稱具有誤導性。似乎假設它將使用 SHA-256 算法對文件進行簽名,但接受 SHA-1 證書指紋作為值。

Windows 10機器上測試rdpsign.exe並能夠使用具有簽名雜湊算法 SHA-256 的已安裝證書的 SHA-1 指紋對 RDP 文件進行簽名。如果您的證書可以對其進行簽名,則應使用以下命令進行簽名。

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

當我使用具有 SHA-1 簽名算法的舊證書時,rdpsign.exe 會生成錯誤:

無法使用為簽名指定的證書。錯誤程式碼:0x8007000d rdp 文件無法簽名。錯誤程式碼:0x8007000d

引用自:https://serverfault.com/questions/865292