Forçar os Serviços de Área de Trabalho Remota no Windows 7 a usar um certificado de autenticação de servidor personalizado para TLS
Este artigo fornece uma solução para um problema em que um certificado de autenticação de servidor autoassinado é gerado automaticamente para dar suporte ao TLS (Transport Layer Security) quando você faz uma conexão RDS (Serviços de Área de Trabalho Remota) com um computador com Windows 7.
Aplica-se a: Windows 7 Service Pack 1
Número original do KB: 2001849
Sintomas
Ao fazer uma conexão RDS com um computador com Windows 7, um certificado de autenticação de servidor autoassinado é gerado automaticamente para dar suporte ao TLS. Isso permite que os dados sejam criptografados entre computadores. Os dados só são criptografados quando a seguinte configuração de Política de Grupo está habilitada no computador de destino e definida como SSL (TLS 1.0):
Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Security:Require use of specific security layer for remote (RDP) connections
Causa
A geração de certificados autoassinados para TLS em uma conexão RDS é habilitada por design no Windows Vista e Windows 7.
Solução
Os certificados de autenticação de servidor têm suporte no Windows Vista e no Windows 7. Para usar um certificado personalizado para o RDS, siga as etapas abaixo:
Instale um certificado de autenticação de servidor de uma autoridade de certificação.
Crie o seguinte valor do Registro contendo o hash SHA1 do certificado para configurar esse certificado personalizado para dar suporte ao TLS em vez de usar o certificado autoassinado padrão.
- Local:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- Nome do valor: SSLCertificateSHA1Hash
- Tipo de valor: REG_BINARY
- Dados do valor: <impressão digital do certificado>
O valor deve ser a impressão digital do certificado separado por vírgula (,) e sem espaços vazios. Por exemplo, se você exportasse essa chave do Registro, o valor SSLCertificateSHA1Hash teria a seguinte aparência:
SSLCertificateSHA1Hash=hex:42,49,e1,6e,0a,f0,a0,2e,63,c4,5c,93,fd,52,ad,09,27,82,1b,01
É necessário editar o Registro diretamente porque não há interface do usuário em SKUs de cliente Windows para configurar um certificado de servidor.
- Local:
O serviço de Serviços de Host da Área de Trabalho Remota é executado na conta NETWORK SERVICE. Portanto, é necessário definir a ACL do arquivo de chave usado pelo RDS (referenciado pelo certificado nomeado no valor do registro SSLCertificateSHA1Hash) para incluir NETWORK SERVICE com permissões de leitura. Para modificar as permissões, siga estas etapas:
Abra o snap-in Certificados do computador local:
- Clique em Iniciar, clique em Executar, digite mmc e clique em OK.
- No menu Arquivo , clique em Adicionar/Remover Snap-in.
- Na caixa de diálogo Adicionar ou Remover Snap-ins, na lista Snap-ins disponíveis, clique em Certificados e clique em Adicionar.
- Na caixa de diálogo Snap-in Certificados, clique em Conta de computador e clique em Avançar.
- Na caixa de diálogo Selecionar Computador , clique em Computador local: (o computador em que este console está sendo executado) e clique em Concluir.
- Na caixa de diálogo Adicionar ou Remover Snap-ins , clique em OK.
- No snap-in Certificados, na árvore de console, expanda Certificados (Computador Local), expanda Pessoal e navegue até o certificado SSL que você gostaria de usar.
- Clique com o botão direito do mouse no certificado, selecione Todas as Tarefas e selecione Gerenciar Chaves Privadas.
- Na caixa de diálogo Permissões, clique em Adicionar, digite SERVIÇO DE REDE, clique em OK, selecione Ler na caixa de seleção Permitir e clique em OK.
Mais informações
Para obter mais informações sobre como definir programaticamente as configurações de criptografia RDP, consulte Win32_TSGeneralSetting classe.