Como fornecer um certificado de servidor verificado para conexões de área de trabalho remota (RDP) para o Windows 10

5

Temos uma máquina Windows 10 Pro em nosso escritório que possui uma porta aberta para a Internet para conexões de entrada de área de trabalho remota (um "host"). Ele é bem protegido por senha complexa e número limitado de tentativas permitidas e somente TLS 1.1 ou superior, mas não apresenta um certificado SSL verificado externamente, apenas o certificado auto-gerado auto-assinado fornecido pelos Serviços de Área de Trabalho Remota. nos dá dois problemas:

  1. Não podemos ter certeza de que, ao nos conectarmos remotamente, realmente estamos nos conectando a essa máquina e não a alguma conexão seqüestrada.
  2. Nosso site falha na verificação de conformidade com o PCI-DSS 3.1 (necessária porque usamos uma máquina de cartão de débito / crédito para ponto de venda que se conecta via internet). A verificação relata erros fatais nesta porta de área de trabalho remota voltada para a Internet: 'Certificado Auto-assinado SSL' e 'Certificado SSL com Nome de Host Errado'.

Como obtenho uma máquina com Windows 10 Pro (ou Windows 7/8 / 8.1 Pro) atuando como servidor / host para apresentar um certificado SSL apropriado para verificação de área de trabalho remota?

    
por gogoud 24.06.2016 / 16:40

2 respostas

9

Você pode configurar esse computador host para usar e apresentar seu certificado SSL (existente, adquirido) com verificação externa (instruções provavelmente também funcionam para o Windows 8 e 8.1, podem ou não funcionar para o Windows 7) (partes deste com base em um Microsoft KB 2001849 :

Primeiro, você precisa ter comprado um certificado SSL genuíno confirmado.

Se você tiver este certificado no arquivo de formato pkcs12 (por exemplo, extensão pfx), poderá visualizar a impressão digital SHA1 usando o Linux ou o Cygwin (você precisará dela abaixo):

openssl pkcs12 -in mysite.pfx -nodes|openssl x509 -noout -fingerprint

Como alternativa, se você tiver os arquivos de certificado individuais em seu servidor Linux em / etc / ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle e / etc / ssl / private / mysite.key) você pode criar um arquivo pfx e obter a impressão digital SHA1 da seguinte forma:

  1. Crie um arquivo pfx para o seu certificado, se você ainda não tiver um (aqui: meusite.pfx) - defina uma boa senha quando solicitado: sudo openssl pkcs12 -export -out mysite.pfx -inkey /etc/ssl/private/mysite.pem -em /etc/ssl/certs/mysite.crt -certfile /etc/ssl/mysite.ca-bundle
  2. Mova ou copie esse arquivo pfx conforme necessário para que seja acessível pela máquina host do Windows.
  3. Veja a impressão digital SHA1 da chave (você precisará disso abaixo): %código%

Importe o arquivo de formato pkcs12 (por exemplo, pfx) para o armazenamento de certificados pessoais da máquina host Windows:

  1. Iniciar / Executar / mmc
  2. Arquivo / Adicionar Remover Snap-in / Certficates / Adicionar / Conta de Computador / Computador Local / OK
  3. Na janela à esquerda, clique com o botão direito do mouse em Certificados (computador local) / Pessoal, escolha Todas as tarefas / Importar…
  4. Localize o arquivo pfx e importe-o, sugiro que, por motivos de segurança, você não o torne exportável.
  5. Ao expandir seus dados pessoais / certificados, você deve ver agora três certificados, um dos quais é o certificado do seu site (por exemplo, mysite.com). Clique com o botão direito do mouse neste certificado de site e clique com o botão direito do mouse, escolha Todas as tarefas / Gerenciar chaves particulares…
  6. Adicionar usuário "SERVIÇO DE REDE" somente com permissão de Leitura (não Controle total) e, em seguida, Aplicar
  7. Fechar mmc

Use o regedit para adicionar um novo valor binário chamado SSLCertificateSHA1Hash em HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp. O valor necessário é a impressão digital SHA1 do certificado obtido acima: clique com o botão direito do mouse no novo valor, escolha Modificar e digite os códigos hexadecimais sequencialmente (sem vírgula, espaço ou vírgula, letras não diferenciam maiúsculas de minúsculas) - existem 20 pares hexadecimais ao todo (40 caracteres).

Você pode precisar reinicializar a máquina host ou reiniciar os Serviços de Área de Trabalho Remota (em Services.msc) antes de funcionar.

Agora, depois de fazer uma conexão de área de trabalho remota a esse host usando o nome do site correto (por exemplo, mysite.com), você verá um cadeado travado no lado esquerdo da barra de conexão superior: clicar neste mostra que a identidade do computador remoto foi verificada. Uma porta que está aberta da Internet para esse host agora deve passar pelo teste de nome de host do PCI-DSS 3.1.

    
por 24.06.2016 / 16:40
3

Aqui estão os passos básicos que uso:

Obtenha um certificado válido para o host, (ele não precisa vir de uma CA externa, mas todas as suas máquinas precisam confiar nele). Certifique-se de que tenha o nome do host correto, eu tive problemas com certificados curinga.

Instale o certificado no host, como:

certutil.exe -p myPassword -importPFX c:\mycert.pfx noExport

encontre a impressão digital do certificado, na interface do usuário ou no PowerShell:

$tp = (ls Cert:\LocalMachine\my | WHERE {$_.Subject -match "something unique in your certs subject field" } | Select -First 1).Thumbprint

agora diga ao Remote Desktop para usar esse certificado:

& wmic /namespace:\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="$tp" 

não é necessário reiniciar

    
por 24.06.2016 / 21:48