Compartilhar via


Configurar HTTPS com SSL (Secure Sockets Layer) para Azure DevOps local

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Você pode fortalecer a segurança da implantação de Azure DevOps Server configurando-o para usar o HTTPS (Hypertext Transfer Protocol Secure) com SSL (Secure Sockets Layer). Você pode optar por exigir esse protocolo, que maximiza a segurança de sua implantação, ou pode optar por oferecer suporte a HTTPS com SSL, além do protocolo padrão, HTTP. Se você usar o Release Management para Visual Studio 2013, também poderá configurá-lo para usar HTTPS com SSL, embora não possa configurá-lo para dar suporte a HTTP e HTTPS com SSL.

Antes de escolher uma configuração, revise as vantagens e desvantagens descritas aqui. Depois de identificar a configuração que melhor atende às necessidades de segurança da sua organização, siga as etapas neste tópico para configurar sua implantação.

Neste tópico

Vantagens de oferecer suporte a HTTPS com SSL além de HTTP

Se você configurar sua implantação de Azure DevOps Server para dar suporte a ambos os protocolos, os usuários cujos computadores foram configurados para HTTPS com SSL se conectarão usando esse protocolo, o que torna sua implantação mais segura. Além disso, os usuários cujos computadores estão configurados apenas para HTTP ainda podem se conectar à sua implantação. Embora você não deva implantar essa configuração em redes públicas, você pode obter as seguintes vantagens continuando a oferecer suporte a conexões HTTP em um ambiente de rede controlado:

  • Você pode aumentar a segurança de sua implantação ao longo do tempo configurando computadores cliente para HTTPS com SSL conforme sua agenda permitir. Se você adotar uma abordagem em fases, não precisará atualizar todos os computadores ao mesmo tempo, e os usuários cujos computadores ainda não foram atualizados ainda poderão se conectar à implantação.

  • Você pode configurar e manter Azure DevOps Server com mais facilidade.

  • As chamadas de um serviço Web para outro são mais rápidas por HTTP do que por HTTPS com SSL. Portanto, você pode continuar a oferecer suporte a conexões HTTP de computadores cliente para os quais os requisitos de desempenho superam os riscos de segurança.

Vantagens de exigir HTTPS com SSL para todas as conexões

Se você precisar de HTTPS com SSL para todas as conexões, obterá as seguintes vantagens:

  • Todas as conexões da Web entre a camada de aplicativo, a camada de dados e a camada de cliente para Azure DevOps são mais seguras porque exigem certificados.

  • Você pode controlar o acesso mais facilmente configurando certificados para expirar quando uma fase do projeto for concluída.

Desvantagens de oferecer suporte ou exigir HTTPS com SSL

Antes de configurar Azure DevOps Server para dar suporte ou exigir HTTPS com SSL, você deve considerar as seguintes desvantagens:

  • Você pode complicar as tarefas de administração em andamento. Por exemplo, talvez seja necessário reconfigurar sua implantação para parar de oferecer suporte a HTTPS com SSL antes de aplicar service packs ou outras atualizações.

  • Você deve não apenas configurar, mas também gerenciar uma autoridade de certificação (CA) e relações de confiança de certificado. Você pode usar os Serviços de Certificados no Windows Server 2003 e no Windows Server 2008, mas talvez não queira investir o tempo e os recursos necessários para a implantação de uma PKI (infra-estrutura de chave pública) segura.

  • Você deve gastar um tempo significativo configurando e testando qualquer uma dessas configurações, e a solução de problemas de sua implantação se tornará mais difícil.

  • Se você continuar a dar suporte a ambos os protocolos, as conexões externas poderão não ser criptografadas se a camada de aplicativo do Azure DevOps não estiver protegida adequadamente.

  • Se você precisar de HTTPS com SSL, o desempenho da implantação será mais lento.

Configurando sua implantação para suportar ou exigir HTTPS com SSL

Os procedimentos neste tópico descrevem um processo para solicitar, emitir e atribuir certificados necessários para conexões SSL em Azure DevOps Server. Se você estiver usando um software diferente do descrito neste tópico, talvez seja necessário executar etapas diferentes. Para dar suporte a conexões externas com sua implantação Azure DevOps Server, você também deve habilitar a autenticação básica, a autenticação Digest ou ambas no IIS (Serviços de Informações da Internet).

Seguindo os procedimentos deste tópico, você realizará as seguintes tarefas:

  1. Obtenha certificados para sua implantação de Azure DevOps Server e os sites que ele usa.

  2. Instale e atribua os certificados.

  3. Configure Azure DevOps Server.

  4. Configure Team Foundation Build.

  5. Configurar o Release Management para Visual Studio 2013

  6. Configurar computadores cliente.

Pré-requisitos

Para executar os procedimentos neste tópico, você deve primeiro atender aos seguintes requisitos:

  • Os componentes lógicos nas camadas de dados e aplicativos do Azure DevOps devem ser instalados, embora, no caso do próprio Azure DevOps Server, não necessariamente configurados. Essas camadas incluem IIS, SQL Server e quaisquer componentes adicionais que você possa ter integrado, como Team Foundation Build e SQL Server Reporting Services.

    Os procedimentos neste tópico referem-se ao servidor ou servidores que estão executando os componentes lógicos no aplicativo e nas camadas de dados do Azure DevOps. As camadas de aplicativo e dados podem estar em execução no mesmo servidor ou em vários servidores, conforme descrito no guia de instalação do Azure DevOps Server.

  • Você deve ter uma autoridade de certificação (CA) da qual possa emitir certificados ou ter se inscrito em uma autoridade de certificação de terceiros com uma cadeia confiável. Este tópico pressupõe que você esteja usando os Serviços de Certificados como sua autoridade de certificação, mas pode usar qualquer autoridade de certificação configurada para sua implantação ou certificados de uma autoridade de certificação de terceiros confiável. Se você não tiver uma autoridade de certificação, poderá instalar os Serviços de Certificados e configurar uma. Para obter mais informações, consulte um dos seguintes conjuntos de documentação no site da Microsoft:

  • Você precisa ser um administrador para configurar todos os componentes de sua implantação para HTTPS e SSL. Se você trabalha em uma implantação distribuída em que pessoas diferentes têm permissões administrativas para componentes individuais, precisará coordenar com essas pessoas para concluir a configuração.

  • Especificamente, você deve pertencer ao grupo Administradores do Team Foundation e deve pertencer ao grupo Administradores na camada de aplicativo, na camada de dados e no Servidor Proxy ou servidores do Azure DevOps para o Team Foundation.

  • Para configurar um servidor de compilação, você deve pertencer ao grupo Administradores nesse servidor.

  • Para configurar o Release Management, você deve pertencer ao grupo Administradores no servidor que hospeda o Release Management Server e ser membro da função Release Manager no Release Management.

  • Se sua implantação usar relatórios, você deverá ser membro de um grupo de segurança administrativa ou ter permissões equivalentes definidas individualmente para configurar o Reporting Services.

    Para obter mais informações sobre permissões, consulte Referência de permissão para Azure DevOps Server.

Pressuposições

Os procedimentos neste tópico pressupõem que as seguintes condições sejam verdadeiras:

  • O servidor ou servidores da camada de dados e da camada de aplicativo foram instalados e implantados em um ambiente seguro e configurados de acordo com as práticas recomendadas de segurança.

  • Você está familiarizado com a configuração e o gerenciamento de PKIs e a solicitação, emissão e atribuição de certificados.

  • Você tem um conhecimento prático da topologia de rede do ambiente de desenvolvimento e está familiarizado com a definição de configurações de rede, IIS e SQL Server.

Obtenção de um certificado

Antes de configurar Azure DevOps Server para usar HTTPS com SSL, você deve obter e instalar um certificado de servidor para os servidores em sua implantação. Para obter um certificado de servidor, você deve instalar e configurar sua própria autoridade de certificação ou usar uma autoridade de certificação de uma organização externa em que você confia (certificados de terceiros).

Para obter mais informações sobre como instalar uma autoridade de certificação, consulte os seguintes tópicos no site da Microsoft:

Solicitando, instalando e configurando sites com um certificado

Depois de se inscrever em uma autoridade de certificação, você deve solicitar um certificado usando o Gerenciador do IIS ou instalar manualmente o certificado em cada um dos seguintes servidores em sua implantação:

  • Cada servidor da camada de aplicativo.
  • Cada servidor que está executando Azure DevOps Proxy Server, se houver, está configurado para sua implantação.
  • Cada servidor que está executando o Team Foundation Build Service como um controlador de compilação ou um agente de compilação, se houver, está configurado para sua implantação.
  • O servidor que está executando o Reporting Services, se estiver configurado para sua implantação.

Além disso, os computadores cliente em sua implantação precisarão ser registrados na cadeia de certificados e solicitar o certificado necessário. Se você estiver usando o Release Management, isso incluirá todos os computadores que executam o cliente Release Management, bem como todos os clientes¹ que executam o agente de implantação em seus ambientes de lançamento. Se um ou mais de seus projetos usarem o Git para controle de versão, os usuários desses projetos também terão que configurar o Git em seus computadores para reconhecer e usar o certificado do cliente. Para obter informações sobre como solicitar um certificado de cliente de uma autoridade de certificação específica, consulte a documentação dessa autoridade de certificação.

¹ Clientes e servidores são chamados separadamente aqui, mas isso é apenas uma convenção deste documento. Qualquer computador que execute o agente de implantação precisa do certificado instalado.

  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet) .

  2. Expanda seu servidor, navegue até Certificados do Servidor e crie e conclua sua solicitação de certificado.

    Abra o Gerenciador do IIS e solicite um certificado

    Crie uma solicitação e conclua-a

    Para obter mais informações, consulte Configurando certificados de servidor no IIS.

  3. Importar certificado.

  4. Agora você precisa configurar cada site que exigirá esse certificado com as configurações apropriadas (com exceção do site Release Management, que você configurará posteriormente). Especificamente, você precisará fazer isso para cada um dos seguintes sites:

    • Site padrão
    • Azure DevOps Server
    • Azure DevOps Server Proxy (se sua implantação o usar)

    Em cada servidor que hospeda um site que você deseja configurar, abra o Gerenciador dos Serviços de Informações da Internet (IIS).

  5. Expanda ComputerName, expanda Sites, abra o submenu do site que você deseja configurar (por exemplo, Azure DevOps Server) e escolha Associações no painel Ações.

    Você deve configurar associações para todos os sites

  6. Em Associações de site, escolha Adicionar.

    A caixa de diálogo Adicionar Ligação do Site é exibida.

  7. Na lista Tipo, escolha https.

    Em Porta, digite um número de porta diferente.

    Importante

    O número de porta padrão para conexões SSL é 443, mas você deve atribuir um número de porta exclusivo para cada um dos seguintes sites: Site Padrão, Azure DevOps Server e Azure DevOps Server Proxy (se sua implantação o usar). Você deve registrar o número da porta SSL para cada site configurado. Você precisará especificar esses números no console de administração do Azure DevOps.

    Em Certificado SSL, escolha o certificado que você importou e, em seguida, escolha OK e feche a página Associações.

    Certifique-se de escolher um número de porta exclusivo

  8. Na página inicial do site que você está configurando, abra o modo de exibição Recursos.

  9. Em IIS, escolha Autenticação.

  10. Escolha um método de autenticação que você deseja configurar, abra seu submenu e habilite, desabilite ou execute configurações adicionais no método, conforme melhor atender às suas necessidades de segurança. Por exemplo, se você quiser desabilitar a autenticação anônima, escolha o método de Autenticação Anônima e escolha Desabilitar no menu Ações.

    Escolha o método e, em seguida, a ação a ser executada

  11. Depois de concluir a configuração, reinicie os serviços da Web.

Configurando seu firewall

Você deve configurar seu firewall para permitir o tráfego através das portas SSL que você acabou de especificar no IIS. Para obter mais informações, consulte a documentação do firewall.

Importante

Certifique-se de testar o tráfego nas portas especificadas de outro computador. Se você não puder acessar o site ou portal da Web padrão, verifique novamente as configurações de porta especificadas para esses sites no IIS e verifique se o firewall está configurado adequadamente para permitir o tráfego nessas portas.

Configurar o SQL Server Reporting Services

Se sua implantação usar relatórios, você deverá configurar SQL Server Reporting Services para dar suporte a HTTPS com SSL e usar a porta especificada no IIS para Azure DevOps Server. Caso contrário, o servidor de relatório não funcionará corretamente para sua implantação. Para obter mais informações, consulte Configurando um servidor de relatório para conexões SSL (Secure Sockets Layer).

Dica

Se sua implantação não usar relatórios, você poderá ignorar este procedimento.

Configurando HTTPS para Azure DevOps Server

Siga estas etapas para configurar sua implantação Azure DevOps Server com as portas HTTPS e os valores que você configurou no IIS para os sites padrão e Azure DevOps Server.

Para reconfigurar Azure DevOps Server para usar ou exigir HTTPS

  1. Abra o console de administração do Azure DevOps e navegue até o nó da camada de aplicativo.

  2. Em Application Tier Summary (Resumo da camada de aplicativo), escolha Change URLs (Alterar URLs).

    A janela Alterar URLs é aberta.

  3. Em URL de notificação, digite a URL HTTPS que você configurou para o site Azure DevOps Server no IIS.

    Por exemplo, você pode ter configurado o site para usar a porta 444. Nesse caso, você digita https:// ServerName:444/tfs. Certifique-se de usar o nome de domínio totalmente qualificado do servidor em vez de localhost.

    Especifique HTTPS, servidor e porta no endereço

  4. Escolha Test (Testar). Não escolha OK se o teste não for aprovado. Volte e verifique se você inseriu as informações corretas de URL e porta, se todos os firewalls estão configurados para permitir o tráfego nessas portas e se o site está disponível e em execução no Gerenciador do IIS.

  5. Para exigir HTTPS, escolha Usar na URL do Servidor e digite a URL HTTPS que você configurou para o site Azure DevOps Server.

    Certifique-se de usar o nome de domínio totalmente qualificado do servidor em vez de localhost.

  6. Escolha Test (Testar) e, em seguida, escolha OK se o teste for aprovado.

  7. Se sua implantação usar o Reporting Services, no console de administração, escolha Relatórios. Caso contrário, ignore o restante deste procedimento.

  8. Em Relatórios, escolha Editar.

    Se a caixa de diálogo Colocar off-line for aberta, escolha OK.

    A janela Relatórios é aberta.

  9. Escolha a guia Relatórios. Em URLs para Servidor de Relatório, digite as URLs HTTPS para Serviço Web e Gerenciador de Relatórios e escolha OK.

Testar o acesso à sua implantação

Você deve testar se suas alterações estão funcionando conforme o esperado. Esta etapa é opcional, mas altamente recomendada.

Para testar o acesso à sua implantação

  1. Em um computador que não hospeda a camada de aplicativo, abra um navegador da Web e navegue até a home page de uma equipe.

  2. Verifique se você pode acessar suas equipes e projetos no portal da Web, incluindo as páginas de administração.

  3. Se você não puder acessar sua implantação por meio do portal da Web, revise as etapas que acabou de concluir e verifique se fez todas as alterações de configuração corretamente.

Configure sua implantação para exigir HTTPS com SSL (opcional)

Você pode exigir que todas as conexões com a camada de aplicativo Azure DevOps Server usem HTTPS com SSL. Essa segurança adicional é opcional, mas recomendada.

Para exigir conexões SSL

  1. No servidor que hospeda o site que você deseja configurar, escolha Iniciar, escolha Ferramentas Administrativas e, em seguida, escolha Gerenciador dos Serviços de Informações da Internet (IIS).

  2. Siga as etapas apropriadas para sua versão do IIS:

    Para implantações que usam o IIS 7.0:

    1. Expanda ComputerName, expanda Sites e escolha o site que você deseja configurar.

    2. Na página inicial desse site, escolha Configurações de SSL.

    3. No painel Configurações de SSL, marque a caixa de seleção Exigir SSL.

      (Opcional) Marque a caixa de seleção Exigir SSL de 128 bits.

    4. Em Client Certificates (Certificados de cliente), escolha Ignore, Accept (Aceitar) ou Require (Exigir), dependendo dos requisitos de segurança da implantação.

    5. Em Ações, escolha Aplicar.

    6. Repita essas etapas para cada site para o qual você deseja exigir SSL.

Instalando o certificado em servidores de compilação

Se você instalou o Serviço Team Foundation Build em um ou mais servidores, deverá instalar o certificado no repositório de Autoridades de Certificação Raiz Confiáveis de cada servidor. Para obter mais informações, consulte Obtendo um certificado e Solicitando, instalando e configurando sites com um certificado anteriormente neste tópico. Tanto o controlador quanto o agente exigem um certificado com uma chave privada para se identificarem em conexões HTTPS.

Observação

Para executar builds por SSL, o certificado deve ser instalado no repositório raiz confiável no controlador de build e no agente de build.

Atualizando configurações de compilação

Para configurar o Team Foundation Build para conexões SSL, você deve configurar o serviço de compilação para usar a URL HTTPS configurada para a camada de aplicativo e a coleção compatível com a configuração de compilação. Você deve configurar essa URL para cada configuração de build em sua implantação.

Para alterar uma configuração de build para usar HTTPS

  1. No servidor que hospeda a configuração de build que você deseja configurar, abra o console de administração do Team Foundation.

  2. Em Team Foundation, expanda o nome do servidor e escolha Build Configuration.

    O painel Configuração de Compilação é exibido.

  3. Na configuração do serviço, escolha Parar e, em seguida, escolha Propriedades.

    A caixa de diálogo Propriedades do Serviço de Compilação é aberta.

  4. Em Comunicações, verifique se a URL da coleção de projetos está usando o endereço HTTPS correto e o nome completo do servidor.

  5. Em Local Build Service Endpoint (incoming), escolha Change (Change (Alterar).

    A caixa de diálogo Criar Ponto de Extremidade de Serviço é aberta.

  6. Em Detalhes do Ponto de Extremidade, verifique se o número da porta corresponde aos detalhes da configuração.

  7. Em Protocolo, escolha HTTPS.

  8. Na lista Certificados SSL, escolha o certificado que você instalou e configurou para uso com essa implantação e, em seguida, escolha OK.

    Verifique se os detalhes da configuração correspondem

  9. Na caixa de diálogo Build Service Properties , escolha Iniciar.

Configurando computadores clientes

Em cada computador cliente do qual os usuários acessam o Azure DevOps, você deve instalar o certificado localmente e limpar o cache do cliente para qualquer usuário que tenha acessado o Azure DevOps desse computador. Caso contrário, os usuários não poderão se conectar ao Azure DevOps desse computador. Para obter mais informações, consulte Gerenciar certificados raiz confiáveis.

Importante

Não siga este procedimento para computadores que executam Azure DevOps Server e um ou mais clientes do Azure DevOps.

Para instalar o certificado em um computador cliente

  1. Faça logon no computador usando uma conta que pertença ao grupo Administradores nesse computador.

  2. Instale o certificado na pasta Autoridades de Certificação Raiz Confiáveis do computador local.

Para limpar o cache em um computador cliente

  1. Faça logon no computador usando as credenciais do usuário cujo cache você deseja limpar.

  2. Feche todas as instâncias abertas do Visual Studio.

  3. Em uma janela do navegador, abra a seguinte pasta:

    Unidade :\Usuários\ Nome de usuário \AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. Exclua o conteúdo do diretório Cache. Certifique-se de excluir todas as subpastas.

  5. Escolha Iniciar, escolha Executar, digite devenv /resetuserdata e escolha OK.

  6. Repita essas etapas para a conta de cada usuário que acessou o Team Foundation desse computador.

    Observação

    Talvez você queira distribuir instruções para limpar o cache para todos os usuários do Azure DevOps para que eles possam limpar os caches para si mesmos.

Para conectar computadores cliente à implantação reconfigurada

Configurando o Git

Por padrão, os projetos que usam o Git para controle de versão não validarão o certificado SSL que você configurou para Azure DevOps Server. Isso ocorre porque, ao contrário de Azure DevOps Server e Visual Studio, o Git não reconhece o repositório de certificados do Windows. Em vez disso, ele usa OpenSSL para seu repositório de certificados. Para usar um repositório Git para projetos configurados com SSL, você precisará configurar o Git com o certificado na raiz da cadeia de certificação para sua implantação do TFS 2013. Esta é uma tarefa de configuração do cliente que se aplica apenas a projetos de repositório Git.

Para obter mais informações sobre como as operações de rede Git funcionam no Visual Studio 2013, consulte esta postagem no blog.

Dica

Para outras tarefas de gerenciamento de credenciais do Git, como autenticação do Windows, considere baixar e instalar o Repositório de Credenciais do Windows para Git.

Para configurar o repositório de certificados para o Git

  • Faça logon no computador usando uma conta que pertença ao grupo Administradores nesse computador.

  • Certifique-se de que o certificado necessário foi instalado e configurado no computador, conforme acima.

  • No navegador da Web com suporte, extraia o certificado raiz Azure DevOps Server como um arquivo CER/PEM X.509 codificado em base64.

  • Crie uma cópia privada do repositório de certificados raiz do Git e adicione-a à sua cópia de usuário privado do repositório.