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

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

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

Antes de escolher uma configuração, analise 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 a implantação.

Neste tópico

Vantagens de oferecer suporte ao HTTPS com SSL, além do HTTP

Se você configurar a 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 foram configurados apenas para HTTP ainda podem se conectar à sua implantação. Embora você não deva implantar essa configuração por redes públicas, é possível obter as seguintes vantagens ao continuar oferecendo suporte às conexões HTTP em um ambiente de rede controlada:

  • Você pode aumentar a segurança da sua implantação ao longo do tempo configurando os computadores cliente para HTTPS com SSL, conforme sua programação permitir. Se você usa uma abordagem em fases, não será necessário atualizar todos os computadores ao mesmo tempo, e os usuários cujos computadores ainda não foram atualizados ainda podem 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. Desse modo, você pode continuar oferecendo suporte às conexões HTTP de computadores cliente para as quais os requisitos de desempenho superam os riscos à segurança.

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

Se o HTTPS com SSL for exigido para todas as conexões, você obterá as seguintes vantagens:

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

  • Você pode controlar o acesso mais facilmente configurando certificados para que expirem no fim estimado da fase de um projeto.

Desvantagens de oferecer suporte ou exigir HTTPS com SSL

Antes de configurar Azure DevOps Server para dar suporte ou exigir HTTPS com SSL, considere as seguintes desvantagens:

  • Você pode complicar as tarefas contínuas de administração. Por exemplo, talvez você precise reconfigurar a implantação para interromper o suporte oferecido ao HTTPS com SSL para que possa aplicar service packs ou outras atualizações.

  • Além de configurar, você também deve gerenciar uma CA (autoridade de certificação) e certificados confiáveis. 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 implantar uma PKI (infraestrutura de chave pública) segura.

  • Você deve passar um tempo considerável configurando e testando uma dessas configurações e a solução de problemas da 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ê exigir HTTPS com SSL, o desempenho da implantação será mais lento.

Configurando sua implantação para oferecer suporte 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 estiver usando um software diferente do que é descrito neste tópico, talvez você precise executar outras etapas. Para dar suporte a conexões externas à implantação do Azure DevOps Server, você também deve habilitar a autenticação Básica, a autenticação Digest ou ambos 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. Instalar e atribuir os certificados.

  3. Configurar Azure DevOps Server.

  4. Configurar o Team Foundation Build.

  5. Configurar o Release Management para Visual Studio 2013

  6. Configurar computadores cliente.

Pré-requisitos

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

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

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

  • É preciso ter uma CA (autoridade de certificação) com a qual você possa emitir certificados ou fazer uma assinatura de 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 CA, mas é possível usar qualquer CA configurada para a implantação ou certificados de uma autoridade de certificação confiável de terceiros. Caso não tenha uma autoridade de certificação, você 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 da 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, será necessário 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 aplicativos, na camada de dados e no Servidor Proxy do Azure DevOps ou nos servidores do Team Foundation.

  • Para configurar um servidor de build, você deve pertencer ao grupo Administradores nesse servidor.

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

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

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

Suposições

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

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

  • Você está familiarizado com a configuração e o gerenciamento de PKIs, bem como com 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.

Obtendo 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, é preciso instalar e configurar sua própria autoridade de certificação ou usar uma autoridade de certificação de uma organização externa na qual você confia (certificados de terceiros).

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

Solicitando, instalando e configurando sites com um certificado

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

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

Além disso, os computadores cliente da implantação precisarão ser registrados na cadeia de certificados e solicitar o certificado necessário. Se você estiver usando o Release Management, isso inclui quaisquer computadores que estejam executando o Release Management Client, bem como quaisquer clientes¹ executando o agente de implantação em seus ambientes de versão. Se um ou mais de seus projetos usarem Git para controle de versão, os usuários nesses projetos também terão que configurar Git em seus computadores para que reconheçam e usem o certificado de cliente. Para obter informações sobre como solicitar um certificado de cliente de uma CA específica, consulte a documentação dessa autoridade de certificação.

¹ Os termos clientes e servidores são mencionados separadamente aqui, mas isso é apenas uma convenção deste documento. Qualquer computador que esteja executando 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.

    Abrir o Gerenciador do IIS e solicitar um certificado

    Crie uma solicitação e conclua-a

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

  3. Importe o certificado.

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

    • Site Padrão
    • Azure DevOps Server
    • proxy Azure DevOps Server (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 da 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 Proxy de Azure DevOps Server (se sua implantação o usar). Você deve registrar o número da porta SSL de cada site que configurar. Você precisará especificar esses números no console de administração do Azure DevOps.

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

    Escolha um número de porta exclusivo

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

  9. Em IIS, escolha Autenticação.

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

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

  11. Assim que concluir a configuração, reinicie os serviços Web.

Configurando o firewall

É preciso configurar o firewall para permitir o tráfego pelas portas SSL que você especificou no IIS. Para obter mais informações, consulte a documentação do seu firewall.

Importante

Não se esqueça de testar o tráfego nas portas que você especificou de outro computador. Se você não puder acessar o site ou o portal da Web padrão, marcar 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 a 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 Configuring a Report Server for Secure Sockets Layer (SSL) Connections.

Dica

Se sua implantação não usa relatórios, você poderá pular esse procedimento.

Configurando HTTPS para Azure DevOps Server

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

Para reconfigurar Azure DevOps Server 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 Resumo da Camada de Aplicativo, escolha Alterar URLs.

    A janela Alterar URLs é aberta.

  3. Em URL de Notificação, digite a URL HTTPS configurada para o site do Azure DevOps Server no IIS.

    Por exemplo, talvez você tenha configurado o site para usar a porta 444. Nesse caso, você digita https:// ServerName:444/tfs. Verifique se você está usando o nome de domínio totalmente qualificado do servidor, e não o localhost.

    Especificar HTTPS, servidor e porta no endereço

  4. Escolha Testar. Não escolha OK se o teste não for aprovado. Volte e verifique se você inseriu a URL e as informações de porta corretas, se todos os firewalls estão configurados para permitir 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 configurada para o site do Azure DevOps Server.

    Verifique se você está usando o nome de domínio totalmente qualificado do servidor, e não o localhost.

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

  7. Se a implantação usar 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 Tirar Offline for aberta, escolha OK.

    A janela Relatório é aberta.

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

Testar o acesso à sua implantação

Você deve verificar se suas alterações estão funcionando conforme o esperado. Essa etapa é opcional, mas altamente recomendável.

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, examine as etapas que acabou de concluir e verifique se fez todas as alterações de configuração corretamente.

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

Você pode exigir todas as conexões com a camada de aplicativo Azure DevOps Server para usar 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 de 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 deseja configurar.

    2. Na home page desse site, escolha Configurações de SSL.

    3. No painel Configurações de SSL, selecione a caixa Exigir marcar SSL.

      (Opcional) Selecione a caixa Exigir marcar SSL de 128 bits.

    4. Em Certificados do Cliente, escolha Ignorar, Aceitar ou 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 deseja exigir SSL.

Instalando o certificado em servidores de compilação

Se você instalou o Team Foundation Build Service em um ou mais servidores, deverá instalar o certificado no repositório 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. O controlador e o agente exigem um certificado com uma chave privada com o qual identificam a si mesmos nas conexões HTTPS.

Observação

Para executar compilações por SSL, o certificado deve ser instalado no repositório raiz confiável no controlador de compilação e no agente de compilação.

Atualizando as configurações da compilação

Para configurar o Team Foundation Build para conexões SSL, você deve configurar o serviço de build para usar a URL HTTPS configurada para a camada de aplicativo e a coleção à qual a configuração de build dá suporte. É preciso configurar essa URL para cada configuração da compilação na sua implantação.

Para alterar uma configuração da compilação 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 Configuração de Build.

    O painel Configuração de Build é 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 Build é 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 Ponto de Extremidade do Serviço de Build Local (entrada), escolha 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 escolha OK.

    Verifique se os detalhes da configuração correspondem

  9. Na caixa de diálogo Propriedades do Serviço de Build , escolha Iniciar.

Configurando computadores cliente

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 estão executando 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 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:\Users\UserName\AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. Exclua o conteúdo do diretório Cache. Não se esqueça de excluir todas as subpastas.

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

  6. Repita essas etapas para a conta de todos os usuários que acessaram 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 por conta própria.

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 configurado para Azure DevOps Server. Isso ocorre porque, ao contrário do Azure DevOps Server e do 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 certificado. Para usar um repositório Git em 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. Essa é uma tarefa de configuração de cliente que se aplica apenas aos projetos do repositório Git.

Para obter mais informações sobre como as operações de rede git funcionam em 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 do Git

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

  • Verifique se o certificado exigido foi instalado e configurado no computador, conforme descrito 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 certificado raiz do Git e adicione-a à sua cópia do repositório de usuário privado.