Назад | Перейти на главную страницу

rdpsign не работает с ошибкой 0x80092004

На сервере RDSH под управлением Windows Server 2016 установлен следующий сертификат:

Нам нужно подписать файл 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.

Я экспортировал сертификат без закрытого ключа в файл X.509 CER с кодировкой base-64.

Я выполнил команду 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 в качестве значения.

Проверено rdpsign.exe на Windows 10 машина и смогла подписать файл RDP с помощью отпечатка SHA-1 установленного сертификата с алгоритмом хеширования подписи SHA-256. Если ваш сертификат может подписать его, это должна сделать следующая команда.

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

Когда я использую более старый сертификат с алгоритмом подписи SHA-1, rdpsign.exe генерирует ошибку:

Невозможно использовать сертификат, указанный для подписи. Код ошибки: 0x8007000d Не удалось подписать файл rdp. Код ошибки: 0x8007000d