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 Windows 7.

Aplica-se a: Windows 7 Service Pack 1
Número de KB original: 2001849

Sintomas

Ao fazer uma conexão RDS com um computador 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

Motivo

A geração de certificados autoassinados para TLS em uma conexão RDS é habilitada pelo design no Windows Vista e no Windows 7.

Resolução

Há suporte para certificados de autenticação de servidor no Windows Vista e no Windows 7. Para usar um certificado personalizado para RDS, siga as etapas abaixo:

  1. Instale um certificado de autenticação de servidor de uma autoridade de certificação.

  2. Crie o seguinte valor de registro que contém o hash SHA1 do certificado para configurar esse certificado personalizado para dar suporte ao TLS em vez de usar o certificado autoassinado padrão.

    • Localização: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
    • Nome do valor: SSLCertificateSHA1Hash
    • Tipo de valor: REG_BINARY
    • Dados de 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 de registro, o valor SSLCertificateSHA1Hash seria assim:

    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á nenhuma interface do usuário em SKUs cliente do Windows para configurar um certificado de servidor.

  3. O serviço 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 o SERVIÇO DE REDE com permissões de leitura. Para modificar as permissões, siga estas etapas:

    Abra o snap-in certificados para o computador local:

    1. Clique em Iniciar, clique em Executar, digite mmc e clique em OK.
    2. No menu Arquivo, clique em Adicionar/Remover Snap-in.
    3. Na caixa de diálogo Adicionar ou Remover Snap-ins , na lista De snap-ins disponíveis , clique em Certificados e clique em Adicionar.
    4. Na caixa de diálogo Snap-in Certificados , clique em Conta de computador e clique em Avançar.
    5. Na caixa de diálogo Selecionar Computador , clique em Computador local: (o computador em que este console está em execução)e clique em Concluir.
    6. Na caixa de diálogo Adicionar ou Remover Snap-ins , clique em OK.
    7. No snap-in Certificados , na árvore do console, expanda Certificados (Computador Local), expanda Pessoal e navegue até o certificado SSL que você gostaria de usar.
    8. Clique com o botão direito do mouse no certificado, selecione Todas as Tarefas e selecione Gerenciar Chaves Privadas.
    9. 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 configurar programaticamente as configurações de criptografia RDP, consulte Win32_TSGeneralSetting classe.