Habilitar o acesso remoto da intranet com certificado TLS/SSL (Avançado)
Neste tutorial você aprenderá a configurar um runtime de integração auto-hospedada com vários máquinas locais e permitir o acesso remoto da intranet com o certificado TLS/SSL (Avançado) para proteger a comunicação entre nós do runtime de integração.
Pré-requisitos
- Uma introdução à Criptografia Forte SSL/TLS.
- O certificado pode ser um certificado TLS geral para um servidor Web. Requisitos:
- O certificado deve ser um certificado X509 v3 publicamente confiável. É recomendável que você use certificados emitidos por uma AC (autoridade de certificação) pública parceira.
- Cada nó do runtime de integração deve confiar nesse certificado.
- Recomendamos certificados SAN (Nome Alternativo do Assunto) porque todos os FQDN (nomes de domínio totalmente qualificados) de nós do runtime de integração precisam ser protegidos por esse certificado. (A validação do TLS/SSL do WCF somente da verificação do último nome DNS no SAN foi corrigida no .NET Framework 4.6.1. Veja Mitigação: método X509CertificateClaimSet.FindClaims para obter mais informações.)
- Não há suporte para certificados de curinga (*)
- O certificado deve ter uma chave privada (como o formato PFX).
- O certificado pode usar qualquer tamanho de chave com suporte no Windows Server 2012 R2 para certificados TLS/SSL.
- Só há suporte para o certificado CSP (provedor de serviços de criptografia) até o momento. Não há suporte para certificados que usam chaves CNG (provedor armazenamento de chaves).
Etapas
Execute o comando do PowerShell abaixo em todos os computadores para obter seus FQDNs:
[System.Net.Dns]::GetHostByName("localhost").HostName
Por exemplo, os FQDNs são node1.domain.contoso.com e node2.domain.contoso.com.
Gere um certificado com os FQDNs de todos os computadores em Nome Alternativo do Assunto.
Instale o certificado em todos os nós no Computador Local ->Pessoal para que ele possa ser selecionado no gerenciador de configurações do runtime de integração:
Clique no certificado e instale-o.
Selecione Computador Local e insira a senha.
Selecione Colocar todos os certificados no repositório a seguir. Clique em Procurar. Selecione Pessoal.
Selecione Concluir para instalar o certificado.
Habilitar acesso remoto pela intranet
Durante o registro de nó do runtime de integração auto-hospedada:
Selecione Habilitar acesso remoto da intranet e selecione Próximo.
Defina a Porta Tcp (8060 por padrão). Certifique-se de que a porta esteja aberta no firewall.
Clique em Selecionar. Na janela pop-up, escolha o certificado certo e selecione Concluir.
Depois que o runtime de integração auto-hospedada estiver registrado.
Observação
O runtime de integração auto-hospedada pode alterar as configurações de acesso remoto somente quando ele tem um único nó, que é por design. Caso contrário, o botão de rádio não poderá ser marcado.
Acesse Configuration Manager do runtime de integração auto-hospedada ->Configurações ->Acesso remoto da intranet. Clique em Alterar.
Escolha Habilitar com certificado TLS/SSL (Avançado).
Clique em Selecionar. Na janela pop-up, escolha o certificado certo e selecione OK.
Verifique as configurações de acesso remoto no Configuration Manager do runtime de integração auto-hospedada.
Como utilizar um certificado autoassinado se você não tiver o certificado publicamente confiável:
Gere e exporte um certificado autoassinado (esta etapa poderá ser ignorada se você já tiver o certificado):
Gere um certificado autoassinado por meio do PowerShell (com privilégios elevados):
New-SelfSignedCertificate -DnsName contoso.com, node1.domain.contoso.com, node2.domain.contoso.com -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -CertStoreLocation cert:\LocalMachine\My
Para exportar o certificado gerado com uma chave privada para um arquivo PFX protegido por senha, você precisará de sua impressão digital. Ele pode ser copiado dos resultados do comando
New-SelfSignedCertificate
. Por exemplo, éCEB5B4372AA7BF877E56BCE27542F9F0A1AD197F
.Exporte o certificado gerado com a chave privada por meio do PowerShell (com privilégios elevados):
$CertPassword = ConvertTo-SecureString -String “Password” -Force -AsPlainText Export-PfxCertificate -Cert cert:\LocalMachine\My\CEB5B4372AA7BF877E56BCE27542F9F0A1AD197F -FilePath C:\self-signedcertificate.pfx -Password $CertPassword
Você exportou o certificado com a chave privada para C:\self-signedcertificate.pfx.
Instale o certificado em todos os nós para: Computador local ->Armazenamento de Autoridades de Certificação Raiz Confiáveis:
- Clique no certificado e instale-o.
- Selecione Computador Local e insira a senha.
- Selecione Colocar todos os certificados no repositório a seguir. Clique em Procurar. Selecione Autoridades de Certificação Raiz Confiáveis.
- Selecione Concluir para instalar o certificado.
Solução de problemas
Verifique se o certificado existe no armazenamento de destino:
Siga este procedimento Como exibir certificados com o snap-in do MMC – WCF para exibir Certificados (Computador Local) no snap-in do MMC.
Confirme se o certificado está instalado em Pessoal e Armazenamento de Autoridades de Certificação Raiz Confiáveis (se for um certificado autoassinado).
Verifique se o certificado tem uma chave privada e não expirou.
Certifique-se de que a conta de serviço do runtime de integração auto-hospedada (a conta padrão é NT SERVICE\DIAHostService) tenha permissão de leitura para as chaves privadas do certificado:
Clique com o botão direito do mouse no certificado ->Todas as tarefas ->Gerenciar chaves privadas
Se não, conceda a permissão Aplique e salve.