Em um servidor RDSH executando o Windows Server 2016, o seguinte certificado é instalado:
- Emitido por:
COMODO RSA Domain Validation Secure Server CA
- Emitido para:
*.internal.<Internet domain name>
- Válido a partir de: 2017/07/18
- Válido para: 2018/07/19
- impressão digital SHA-1:
02 e5 52 95 aa 2d 9f a5 fb ad 82 97 0e 66 5d a9 73 db 00 ca
- Chave privada: sim
Precisamos assinar um arquivo RDP usando o certificado acima e a pesquisa sugere strongmente o uso do rdpsign.
Eu executei o comando rdpsign -?
, que forneceu o seguinte:
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.
Então, ao contrário de a documentação oficial e agora obsoleta , rdpsign
requer o hash SHA-256 do certificado.
No entanto, o Gerenciador do IIS e o Gerenciador de certificados oferecem apenas impressões digitais SHA-1 de certificados.
link informa que o OpenSSL pode ser usado para obter vários hashes de um certificado, incluindo o SHA-256.
Eu exportei o certificado sem sua chave privada para um arquivo CER X.509 codificado na base 64.
Eu executei o comando openssl x509 -noout -fingerprint -sha1 -inform pem -in <file name>.cer
, que forneceu o seguinte:
SHA1 Fingerprint=02:E5:52:95:AA:2D:9F:A5:FB:AD:82:97:0E:66:5D:A9:73:DB:00:CA
Portanto, podemos ter certeza de que o OpenSSL está exibindo informações precisas porque as impressões digitais SHA-1 são compatíveis.
Eu executei o comando openssl x509 -noout -fingerprint -sha256 -inform pem -in <file name>.cer
, que forneceu o seguinte:
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
Eu executei comandos elevados (executar como administrador) rdpsign /sha256 D744A5BA9456B09F26D22B88928411743523718730FDCED0B1356BD8DAA6A17B <file name>.rdp /v
, rdpsign /sha256 "D744A5BA9456B09F26D22B88928411743523718730FDCED0B1356BD8DAA6A17B" <file name>.rdp /v
e rdpsign /sha256 d744a5ba9456b09f26d22b88928411743523718730fdced0b1356bd8daa6a17b <file name>.rdp /v
, todos com os seguintes resultados:
Unable locate the certificate specified. Error Code: 0x80092004
The rdp file could not be signed. Error Code: 0x80092004
Descobri que quase não há nada relevante on-line para esse problema. Alguém pode aconselhar?