Partilhar via


Certificados e o Ambiente de Serviço de Aplicações

O Ambiente do Serviço de Aplicativo é uma implantação do Serviço de Aplicativo do Azure que é executado em sua rede virtual do Azure. Pode ser implementado através de um ponto de extremidade de aplicação acessível pela internet ou um ponto de extremidade de aplicação na rede virtual. Se você implantar o Ambiente do Serviço de Aplicativo com um ponto de extremidade acessível pela Internet, essa implantação será chamada de Ambiente do Serviço de Aplicativo Externo. Se você implantar o Ambiente do Serviço de Aplicativo com um ponto de extremidade em sua rede virtual, essa implantação será chamada de Ambiente do Serviço de Aplicativo ILB. Você pode saber mais sobre o Ambiente do Serviço de Aplicativo ILB no documento Criar e usar um Ambiente do Serviço de Aplicativo ILB.

Certificados de candidatura

Os aplicativos hospedados em um Ambiente do Serviço de Aplicativo oferecem suporte aos seguintes recursos de certificado centrados no aplicativo, que também estão disponíveis no Serviço de Aplicativo multilocatário. Para obter requisitos e instruções para carregar e gerenciar esses certificados, consulte Adicionar um certificado TLS/SSL no Serviço de Aplicativo do Azure.

Depois de adicionar o certificado ao seu aplicativo do Serviço de Aplicativo ou aplicativo de função, você pode proteger um nome de domínio personalizado com ele ou usá-lo no código do aplicativo.

Limitações

Os certificados gerenciados do Serviço de Aplicativo não são suportados em aplicativos hospedados em um Ambiente do Serviço de Aplicativo.

Definições do TLS

Você pode definir a configuração TLS em um nível de aplicativo.

Certificados raiz para cenários de cliente privado

Quando seu aplicativo atua como um cliente que se conecta a serviços protegidos com certificados privados da Autoridade de Certificação (CA), você precisa adicionar certificados raiz para estabelecer confiança. O Ambiente do Serviço de Aplicativo v3 fornece dois métodos para gerenciar certificados raiz:

  • API de certificado raiz (recomendado): gerenciamento em todo o ambiente para todos os aplicativos
  • Certificado de cliente privado: configuração por aplicativo usando Configurações do aplicativo

Escolher o método certo

Método Scope Utilizar quando Limitações
API de certificado raiz Todos os aplicativos no Ambiente do Serviço de Aplicativo - Você gerencia vários aplicativos que precisam dos mesmos certificados raiz
- Você quer gerenciamento centralizado de certificados
- Você está implantando novos ambientes com Infraestrutura como Código
- Requer parar e iniciar aplicativos existentes para pegar novos certificados
- Requer ferramentas API/CLI/IaC (não disponível no portal do Azure no momento)
Certificado de cliente privado Aplicativos em um único plano do Serviço de Aplicativo - Você precisa de certificados para apenas alguns aplicativos
- Você prefere a configuração baseada em portal
- Aplicativos diferentes precisam de certificados raiz diferentes
- Somente aplicativos de código do Windows
- Deve configurar cada plano do Serviço de Aplicativo separadamente
- Certificados não disponíveis fora do código do aplicativo (não podem ser usados para autenticação de registro de contêiner ou validação TLS front-end)

A recomendação geral é usar a API de certificado raiz para novas implantações e ao gerenciar certificados em vários aplicativos. Ele fornece melhor escalabilidade, suporte à automação e funciona para aplicativos Windows e Linux.

API de certificado raiz

A API de Certificado Raiz permite adicionar programaticamente certificados raiz ao seu Ambiente do Serviço de Aplicativo v3, disponibilizando-os para todos os aplicativos durante a inicialização. Os certificados raiz são certificados públicos que identificam uma autoridade de certificação (CA) raiz e são essenciais para estabelecer confiança em comunicações seguras. Ao adicionar certificados raiz ao seu Ambiente do Serviço de Aplicativo, todos os aplicativos hospedados nesse ambiente os têm instalados em seu armazenamento raiz, garantindo uma comunicação segura com serviços internos ou APIs que usam certificados emitidos por CAs privadas ou empresariais.

Esse recurso está disponível para aplicativos baseados em Windows e Linux no Ambiente do Serviço de Aplicativo v3. Os certificados raiz adicionados por meio dessa API são injetados automaticamente no armazenamento confiável de aplicativos na inicialização, eliminando a necessidade de configurações por aplicativo e simplificando o gerenciamento do ciclo de vida do certificado.

Considerações importantes

  • Os certificados podem ser adicionados a um Ambiente do Serviço de Aplicativo usando a API REST, a CLI do Azure, os modelos ARM, o Bíceps ou o Terraform.
  • Se você adicionar um certificado a um Ambiente do Serviço de Aplicativo com aplicativos existentes ou em execução, deverá parar e iniciar cada aplicativo para que o repositório de certificados seja atualizado com o novo certificado raiz. Recomenda-se adicionar todos os certificados antes de criar seus aplicativos para eliminar a necessidade de parar e iniciar aplicativos individualmente.
    • Parar e iniciar operações é diferente de reiniciar seu aplicativo. Você deve usar os comandos dedicados parar e iniciar disponíveis no portal do Azure, CLI do Azure ou API REST.
    • Iniciar e parar aplicativos causa interrupções temporárias enquanto os aplicativos são interrompidos.
    • Se você tiver vários aplicativos e quiser automatizar esse processo, poderá usar a CLI do Azure ou a API REST.
  • Durante o processo de adição de certificado, você deve fornecer todo o blob de certificado na solicitação. Não é possível carregar um ficheiro .cer diretamente.

Adicionar um certificado raiz

Para adicionar um certificado raiz ao seu Ambiente do Serviço de Aplicativo, use um dos seguintes métodos:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Content-Type: application/json

{
  "location": "{location}",
  "properties": {
    "blob": "{raw certificate blob}",
    "isRoot": true
  }
}

Substitua os seguintes espaços reservados:

  • {subscriptionId}: Sua ID de assinatura do Azure
  • {resourceGroupName}: O grupo de recursos que contém o seu Ambiente de Serviço de Aplicações
  • {aseName}: O nome do seu Ambiente do Serviço de Aplicações
  • {certificateName}: Um nome para o recurso de certificado
  • {location}: A região do Azure onde seu Ambiente do Serviço de Aplicativo está implantado
  • {raw certificate blob}: O blob de certificado bruto do seu certificado raiz

Remover um certificado raiz

Para remover um certificado raiz do seu Ambiente do Serviço de Apps:

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Recuperar um certificado específico

Para obter um certificado raiz específico no seu Ambiente de Serviço de Aplicativo:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Recuperar todos os certificados públicos

Para recuperar todos os certificados públicos do seu Ambiente do App Service:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates?api-version=2024-04-01

Parar e iniciar aplicações

Depois de adicionar um certificado raiz a um Ambiente do Serviço de Aplicativo com aplicativos existentes, você deve parar e iniciar cada aplicativo para atualizar o repositório de certificados.

  1. Navegue até seu aplicativo no portal do Azure.
  2. Selecione Parar na página de visão geral.
  3. Aguarde até que a aplicação pare completamente.
  4. Selecione Iniciar para reiniciar o aplicativo.

Certificado de cliente privado (configuração por aplicativo)

Nota

Para a maioria dos cenários, use a API de certificado raiz em vez desse método. A API de Certificado Raiz fornece gerenciamento de certificados em todo o ambiente para aplicativos Windows e Linux, enquanto esse método é limitado a aplicativos de código do Windows dentro de um único plano do Serviço de Aplicativo.

Se você precisar configurar certificados raiz apenas para aplicativos específicos ou se preferir usar o portal do Azure, poderá usar o método de certificado de cliente privado. Essa abordagem carrega certificados para aplicativos individuais e os disponibiliza para aplicativos no mesmo plano do Serviço de Aplicativo.

Importante

Os certificados de cliente privado só são suportados a partir de código personalizado em aplicações de código do Windows. Não há suporte para certificados de cliente privado fora do aplicativo. Isso limita o uso em cenários como extrair a imagem do contêiner do aplicativo de um registro usando um certificado privado e validação TLS através dos servidores front-end usando um certificado privado.

Siga estas etapas para carregar o certificado (arquivo .cer ) para seu aplicativo no Ambiente do Serviço de Aplicativo. O arquivo .cer pode ser exportado do seu certificado. Para fins de teste, há um exemplo do PowerShell no final para gerar um certificado autoassinado temporário:

  1. Vá para o aplicativo que precisa do certificado no portal do Azure

  2. Vá para Certificados no aplicativo. Selecione Certificado de Chave Pública (.cer). Selecione Adicionar certificado. Forneça um nome. Procure e selecione seu arquivo .cer . Selecione carregar.

  3. Copie a impressão digital.

  4. Vá para Configurações>Configurações da Aplicação. Crie uma configuração de aplicativo WEBSITE_LOAD_ROOT_CERTIFICATES com a impressão digital como o valor. Se você tiver vários certificados, poderá colocá-los na mesma configuração separados por vírgulas e sem espaço em branco como

    84EC242A4EC7957817B8E48913E50953552DAFA6,6A5C65DC9247F762FE17BF8D4906E04FE6B31819

O certificado está disponível para todos os aplicativos no mesmo plano do Serviço de Aplicativo que o aplicativo, que definiu essa configuração, mas todos os aplicativos que dependem do certificado de CA privada devem ter a Configuração do Aplicativo configurada para evitar problemas de tempo.

Se você precisar que ele esteja disponível para aplicativos em um plano diferente do Serviço de Aplicativo, precisará repetir a operação de configuração do aplicativo para os aplicativos desse plano do Serviço de Aplicativo. Para verificar se o certificado está definido, vá para o console do Kudu e emita o seguinte comando no console de depuração do PowerShell:

dir Cert:\LocalMachine\Root

Para executar testes, você pode criar um certificado autoassinado e gerar um arquivo .cer com o seguinte PowerShell:

$certificate = New-SelfSignedCertificate -CertStoreLocation "Cert:\LocalMachine\My" -DnsName "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "Cert:\LocalMachine\My\" + $certificate.Thumbprint
$fileName = "exportedcert.cer"
Export-Certificate -Cert $certThumbprint -FilePath $fileName -Type CERT

Certificado de servidor privado (ligação TLS/SSL)

Nota

Esta seção aborda certificados de servidor para associações TLS/SSL, que é diferente dos certificados raiz discutidos anteriormente. Os certificados de servidor são usados para proteger o domínio personalizado do seu aplicativo com HTTPS, enquanto os certificados raiz estabelecem confiança para conexões de cliente de saída.

Se seu aplicativo atuar como um servidor em um modelo cliente-servidor, seja atrás de um proxy reverso ou diretamente com um cliente privado e você estiver usando um certificado de CA privado, será necessário carregar o certificado do servidor (arquivo .pfx ) com a cadeia de certificados completa para seu aplicativo e vincular o certificado ao domínio personalizado. Como a infraestrutura é dedicada ao seu Ambiente do Serviço de Aplicações, a cadeia completa de certificados é adicionada ao armazenamento de confiança dos servidores. Você só precisa carregar o certificado uma vez para usá-lo com aplicativos que estão no mesmo Ambiente do Serviço de Aplicativo.

Nota

Se você carregou seu certificado antes de 1º de outubro de 2023, precisará recarregar e vincular novamente o certificado para que toda a cadeia de certificados seja adicionada aos servidores.

Siga o tutorial de domínio personalizado seguro com TLS/SSL para carregar/vincular seu certificado de CA privado enraizado ao aplicativo em seu Ambiente do Serviço de Aplicativo.

Próximos passos

  • Informações sobre como usar certificados no código do aplicativo