Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Application Gateway v2 SKU introduz o uso de certificados raiz confiáveis para permitir conexões TLS com os servidores back-end. Esta funcionalidade elimina o uso de certificados de autenticação (certificados Leaf individuais) que eram exigidos no SKU v1. O certificado raiz é um certificado raiz no formato X.509(.CER) codificado em Base-64 do servidor de certificados backend. Ele identifica a autoridade de certificação (CA) raiz que emitiu o certificado do servidor e o certificado do servidor é usado para a comunicação TLS/SSL.
O Application Gateway confia no certificado do seu site por padrão se uma Autoridade de Certificação conhecida (por exemplo, GoDaddy ou DigiCert) o assinar. Nesse caso, não é necessário carregar explicitamente o certificado root. Para mais informações, consulte Resumo da terminação de TLS e TLS de ponta a ponta com Application Gateway. No entanto, se você tiver um ambiente de desenvolvimento/teste e não quiser comprar um certificado assinado pela autoridade de certificação verificada, poderá criar sua própria autoridade de certificação raiz personalizada e um certificado folha assinado por essa autoridade de certificação raiz.
Note
Os certificados gerados automaticamente não são confiáveis por padrão e podem ser difíceis de manter. Além disso, podem utilizar conjuntos de hash e algoritmos de cifra desatualizados que não são seguros. Para maior segurança, adquira um certificado assinado por uma autoridade de certificação conhecida.
Use as seguintes opções para gerar o seu certificado privado para ligações TLS de backend.
Usa a ferramenta de gerador de certificados privados. Ao usar o nome de domínio (Nome Comum) que fornece, esta ferramenta executa os mesmos passos documentados neste artigo para gerar certificados Root e Server. Com os arquivos de certificado gerados, você pode carregar imediatamente o certificado raiz (. CER) para a Configuração de back-end do seu gateway e a cadeia de certificados correspondente (. PFX) para o servidor back-end. A senha para o arquivo PFX também é fornecida no arquivo ZIP baixado.
Use comandos OpenSSL para personalizar e gerar certificados de acordo com suas necessidades. Continue a seguir as instruções deste artigo se quiser fazer este processo inteiramente sozinho.
Neste artigo, você aprenderá a:
- Crie sua própria Autoridade de Certificação personalizada
- Criar um certificado autoassinado assinado pela sua autoridade de certificação personalizada
- Carregue um certificado raiz autoassinado em um Application Gateway para autenticar o servidor back-end
Prerequisites
OpenSSL num computador com Windows ou Linux
Embora possam existir outras ferramentas para gestão de certificados, este tutorial utiliza OpenSSL. Você pode encontrar OpenSSL empacotado com muitas distribuições Linux, como o Ubuntu.
Um servidor web
Por exemplo, Apache, IIS ou NGINX para testar os certificados.
Uma SKU do Application Gateway v2
Se você não tiver um gateway de aplicativo existente, consulte Guia de início rápido: tráfego da Web direto com o Gateway de Aplicativo do Azure - portal do Azure.
Criar um certificado de autoridade de certificação raiz
Crie o seu certificado de CA raiz usando OpenSSL.
Criar a chave raiz
Inicie sessão no seu computador onde o OpenSSL está instalado e execute o seguinte comando. Este comando cria uma chave encriptada.
openssl ecparam -out contoso.key -name prime256v1 -genkey
Crie um certificado raiz e assine por si próprio
Use o comando a seguir para gerar a solicitação de assinatura de certificado (CSR).
openssl req -new -sha256 -key contoso.key -out contoso.csrQuando solicitado, escreva a palavra-passe da chave raiz e a informação organizacional da CA personalizada, como país/região, estado, organização, OU e o domínio totalmente qualificado (este domínio é o emissor).
Use o seguinte comando para gerar o certificado raiz.
openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crtOs comandos anteriores criam o certificado raiz. Usa este certificado para assinar o seu certificado de servidor.
Criar um certificado de servidor
De seguida, cria um certificado de servidor usando OpenSSL.
Criar a chave do certificado
Use o comando a seguir para gerar a chave para o certificado do servidor.
openssl ecparam -out fabrikam.key -name prime256v1 -genkey
Criar o CSR (Pedido de Assinatura de Certificado)
O CSR é uma chave pública que se entrega a uma CA quando se solicita um certificado. A autoridade de certificação emite o certificado para essa solicitação específica.
Note
O CN (Common Name) para o certificado do servidor deve ser diferente do domínio do emissor. Por exemplo, neste caso, o CN do emissor é www.contoso.com e o CN do certificado do servidor é www.fabrikam.com.
Use o seguinte comando para gerar o CSR:
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csrQuando solicitado, digite a senha para a chave raiz e as informações organizacionais para a autoridade de certificação personalizada: País/Região, Estado, Organização, UO e o nome de domínio totalmente qualificado. Este domínio pertence ao site e deve ser diferente do emissor.
Gere o certificado com o CSR e a chave e assine-o com a chave raiz da autoridade de certificação
Use o seguinte comando para criar o certificado:
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
Verificar o certificado recém-criado
Use o seguinte comando para imprimir a saída do arquivo CRT e verificar seu conteúdo:
openssl x509 -in fabrikam.crt -text -noout
Verifique os arquivos em seu diretório e verifique se você tem os seguintes arquivos:
- contoso.crt
- contoso.key
- fabrikam.crt
- fabrikam.key
Configure o certificado nas configurações TLS do seu servidor Web
No teu servidor web, configura o TLS usando os ficheiros fabrikam.crt e fabrikam.key. Se o teu servidor web não conseguir aceitar dois ficheiros, podes combiná-los num único ficheiro .pem ou .pfx usando comandos OpenSSL.
IIS
Para obter instruções sobre como importar certificados e carregá-los como certificado de servidor no IIS, consulte COMO: Instalar certificados importados em um servidor Web no Windows Server 2003.
Para obter instruções de vinculação TLS, consulte Como configurar SSL no IIS 7.
Apache
A configuração a seguir é um exemplo de host virtual configurado para SSL no Apache:
<VirtualHost www.fabrikam:443>
DocumentRoot /var/www/fabrikam
ServerName www.fabrikam.com
SSLEngine on
SSLCertificateFile /home/user/fabrikam.crt
SSLCertificateKeyFile /home/user/fabrikam.key
</VirtualHost>
NGINX
A configuração a seguir é um exemplo de bloco de servidor NGINX com configuração TLS:
Acede ao servidor com o certificado auto-assinado
Adicione o certificado raiz ao armazenamento raiz confiável da sua máquina. Ao acessar o site, verifique se toda a cadeia de certificados é vista no navegador.
Note
O DNS deve ser configurado para apontar o nome do servidor web (neste exemplo,
www.fabrikam.com) para o endereço IP do seu servidor web. Caso contrário, você pode editar o arquivo hosts para resolver o nome.Navegue até o site e clique no ícone de cadeado na caixa de endereço do navegador para verificar as informações do site e do certificado.
Verifique a configuração com OpenSSL
Ou, você pode usar OpenSSL para verificar o certificado.
openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts
Carregue o certificado raiz para as Configurações HTTP do Application Gateway
Para carregar o certificado no Application Gateway, você deve exportar o certificado .crt para um formato de .cer codificado em Base-64. Como .crt já contém a chave pública no formato codificado base-64, basta renomear a extensão do arquivo de .crt para .cer.
portal do Azure
Para carregar o certificado raiz confiável do portal, selecione as Configurações de back-end e selecione HTTPS no protocolo de back-end.
Azure PowerShell
Ou então usa Azure CLI ou Azure PowerShell para carregar o certificado raiz. O código a seguir é um exemplo do Azure PowerShell.
Note
O exemplo seguinte adiciona um certificado raiz de confiança ao gateway da aplicação, cria uma nova configuração HTTP e adiciona uma nova regra, assumindo que o pool backend e o ouvinte já existem.
## Add the trusted root certificate to the Application Gateway
$gw=Get-AzApplicationGateway -Name appgwv2 -ResourceGroupName rgOne
Add-AzApplicationGatewayTrustedRootCertificate `
-ApplicationGateway $gw `
-Name CustomCARoot `
-CertificateFile "C:\Users\surmb\Downloads\contoso.cer"
$trustedroot = Get-AzApplicationGatewayTrustedRootCertificate `
-Name CustomCARoot `
-ApplicationGateway $gw
## Get the listener, backend pool and probe
$listener = Get-AzApplicationGatewayHttpListener `
-Name basichttps `
-ApplicationGateway $gw
$bepool = Get-AzApplicationGatewayBackendAddressPool `
-Name testbackendpool `
-ApplicationGateway $gw
Add-AzApplicationGatewayProbeConfig `
-ApplicationGateway $gw `
-Name testprobe `
-Protocol Https `
-HostName "www.fabrikam.com" `
-Path "/" `
-Interval 15 `
-Timeout 20 `
-UnhealthyThreshold 3
$probe = Get-AzApplicationGatewayProbeConfig `
-Name testprobe `
-ApplicationGateway $gw
## Add the configuration to the HTTP Setting and don't forget to set the "hostname" field
## to the domain name of the server certificate as this will be set as the SNI header and
## will be used to verify the backend server's certificate. Note that TLS handshake will
## fail otherwise and might lead to backend servers being deemed as Unhealthy by the probes
Add-AzApplicationGatewayBackendHttpSettings `
-ApplicationGateway $gw `
-Name testbackend `
-Port 443 `
-Protocol Https `
-Probe $probe `
-TrustedRootCertificate $trustedroot `
-CookieBasedAffinity Disabled `
-RequestTimeout 20 `
-HostName www.fabrikam.com
## Get the configuration and update the Application Gateway
$backendhttp = Get-AzApplicationGatewayBackendHttpSettings `
-Name testbackend `
-ApplicationGateway $gw
Add-AzApplicationGatewayRequestRoutingRule `
-ApplicationGateway $gw `
-Name testrule `
-RuleType Basic `
-BackendHttpSettings $backendhttp `
-HttpListener $listener `
-BackendAddressPool $bepool
Set-AzApplicationGateway -ApplicationGateway $gw
Verificar o estado do back-end do gateway de aplicação
- Selecione a vista de Saúde do Backend do seu gateway de aplicação para verificar se a sonda está saudável.
- Você deve ver que o Status é Íntegro para a sonda HTTPS.
Próximos passos
Para saber mais sobre SSL\TLS no Application Gateway, consulte Visão geral da terminação TLS e TLS de ponta a ponta com o Application Gateway.