Eu tenho um servidor de área de trabalho remota do Windows Server 2016 recém-instalado e estou tentando gerar um certificado para ele. Especificamente, acredito que preciso configurar um certificado para o serviço de função "RD Connection Broker - Publishing".
Toda a documentação da Microsoft e a maior parte do conteúdo de terceiros que posso encontrar parece supor que o certificado será autoassinado ou gerado internamente usando o serviço Autoridade de Certificação da Microsoft. O que eu quero é um certificado assinado por uma Autoridade de Certificação pública de terceiros adequada, para que seja confiável por padrão em todas as máquinas Windows.
O assistente de propriedades de implantação não tem a capacidade de gerar solicitações de certificado, portanto, você precisa usar o snap-in do MMC de certificados (ou IIS, mas não o tenho instalado). Infelizmente, o snap-in de certificados não é muito fácil de usar e não é óbvio como proceder.
Como o snap-in de certificados pode ser usado para gerar uma solicitação de certificado adequada para o serviço de função "RD Connection Broker - Publishing"?
Isto é o que funcionou para mim. No entanto, gostaria de receber comentários ou respostas que possam expandir o que algumas dessas opções realmente significam!
Abra o console do MMC no servidor de Área de Trabalho Remota para o qual deseja gerar o certificado e adicione o snap-in Certificados, selecionando as opções "Conta de computador" e "Computador local". Vá para Pessoal/Certificados, clique com o botão direito do mouse e selecione Todas as tarefas -> Operações avançadas -> Criar solicitação personalizada.
Clique em Avançar. Selecione "Continuar sem política de inscrição" e clique em Avançar novamente.
Para o modelo, escolhi "(Sem modelo) chave CNG". Encontrei alguns posts dizendo que você precisa escolher a opção Legacy, mas não vejo nenhuma razão pela qual isso seria necessário e, de fato, a opção CNG funcionou conforme o esperado.
Para o formato de solicitação, escolhi PKCS #10.
Na caixa de diálogo Informações do certificado, clique em Detalhes e depois em Propriedades.
Na guia Geral, adicione um nome amigável e uma descrição.
Na guia Assunto, adicione o nome DNS totalmente qualificado do servidor (ou farm de servidores) como o "Nome comum". Observe que uma solicitação de certificado com um nome não qualificado (seja como assunto ou como nome alternativo) provavelmente será rejeitada pela autoridade de assinatura do certificado.
Também adicionei Organização, Localidade, Estado e País. Se o servidor tiver mais de um nome DNS, você também poderá adicionar os nomes alternativos neste momento.
Na guia Extensões, em Uso Estendido de Chave, adicione Autenticação do Servidor. Não fiz nenhuma outra alteração nesta guia. (Algumas postagens dizem que você também deve incluir a assinatura de código, presumivelmente para poder assinar arquivos RDP; isso não parece ser necessário, pois consegui usar
rdpsign
para assinar meu arquivo RDP e o certificado foi aceito pelo cliente da Microsoft.)Na guia Chave Privada, em Opções de Chave, alterei o tamanho da chave para 2048 e configurei o sinalizador para "Tornar chave privada exportável". Isso é necessário porque a caixa de diálogo Propriedades de implantação só permitirá que você importe um certificado como um arquivo, o certificado e a chave privada serão transferidos para o(s) servidor(es) host(s) da sessão. Não fiz nenhuma outra alteração nesta guia.
Após dispensar a caixa de diálogo Propriedades, clique em Avançar. Salve a solicitação como um arquivo no formato Base64. Clique em Concluir. Envie a solicitação para sua autoridade de certificação e, assim que o novo certificado for gerado, baixe-o em um arquivo .crt.
No console do MMC, clique com o botão direito do mouse em Pessoal/Certificados e selecione Todas as tarefas -> Importar. Selecione o arquivo de resposta e clique em Avançar. Verifique se o armazenamento pessoal está selecionado e clique em Avançar. Clique em Concluir. Clique em OK quando receber a mensagem informando que a importação foi bem-sucedida.
Clique duas vezes no novo certificado para abri-lo. Verifique se o certificado é mostrado como válido; caso contrário, pode ser necessário importar um certificado de CA intermediário fornecido por sua autoridade de certificação. Verifique também se o certificado mostra a mensagem "Você tem uma chave privada que corresponde a este certificado" na guia Geral.
Clique com o botão direito do mouse no novo certificado e selecione Exportar. Clique em Avançar. Selecione a opção para exportar a chave privada e clique em Avançar.
Na caixa de diálogo Exportar Formato de Arquivo, PKCS#12 era a única opção disponível; Usei as configurações padrão, ou seja, deixei marcada a opção "incluir todos os certificados no caminho de certificação, se possível" e deixei todas as outras opções desmarcadas. Clique em Avançar. ( Edit: no Server 2019, a opção "Ativar privacidade do certificado" também está habilitada por padrão, isso é descrito aqui e, pelo que vejo, você também pode deixá-lo habilitado.)
Escolha a opção para proteger a chave privada usando sua conta de usuário e clique em Avançar. Digite um nome de arquivo e clique em Avançar. Clique em OK quando receber a mensagem informando que a exportação foi bem-sucedida. (Observe que o arquivo será salvo por padrão no mesmo local de onde você importou o arquivo de certificado.)
Voltando ao Gerenciador de Servidores e ao assistente de Propriedades de Implantação, selecione a opção "RD Connection Broker - Habilitar Single Sign On" e clique em "Selecionar certificado existente". Escolha o arquivo .pfx exportado e selecione a opção obrigatória "Permitir que o certificado seja adicionado ao armazenamento de certificados das Autoridades de Certificação Raiz Confiáveis nos computadores de destino". Clique OK. Clique em Aplicar.
NB: para que o certificado seja usado quando os clientes se conectam, você deve instalá-lo para a opção "Enable Single Sign On" em vez de, como eu presumi originalmente, a opção "Publishing". (Você não precisa realmente usar o SSO, você pode configurar se o SSO é tentado por meio da política de grupo no lado do cliente.)
Conforme descrito aqui , você pode verificar com mais facilidade qual certificado está sendo fornecido aos clientes conectando-se pelo endereço IP do servidor em vez do nome.
Referências adicionais:
Configurando certificados e logon único , especialmente a seção intitulada "Erros comuns ao criar certificados".
Protegendo RDS com certificados .