Ao adicionar um segundo ouvinte HTTPS multisite em um gateway de aplicativo, recebo a exceção abaixo:
Falha ao salvar as alterações de configuração no gateway de aplicativo 'MyAppGateway'. Erro: Data ou KeyVaultSecretId deve ser especificado para o certificado 'MyResourceGroup/providers/Microsoft.Network/applicationGateways/MyAppGateway/sslCertificates/myCertificateName'>MyAppGateway/myCertificateName' no Gateway de Aplicativo.
Esse erro ocorre independentemente de eu usar o mesmo certificado para ambos os ouvintes (com os diferentes domínios cobertos pela lista SAN) ou configurar certificados individuais por ouvinte.
Depois de encontrar esse erro, não consigo atualizar o gateway do aplicativo de forma alguma / a única correção parece ser excluí-lo.
Este é um problema conhecido ou estou fazendo algo errado? Estou seguindo os passos descritos aqui ; só estou usando um certificado autoassinado para o certificado SSL inicial (ou seja, em vez de obter LetsEncrypt para emitir o certificado inicial / já que ele será substituído de qualquer maneira). Quando fiz um POC disso para um único site, tudo funcionou como esperado; portanto, o problema parece estar relacionado ao meu uso do recurso multissite (ou seja, ter diferentes FQDNs apontando para o IP público compartilhado do gateway do aplicativo e, em seguida, roteando as solicitações para diferentes back-ends com base nos valores do cabeçalho do host).
Corrigindo o estado do gateway de aplicativo corrompido
Consegui remover o certificado incorreto executando o seguinte PowerShell. Não encontrei nenhuma opção no portal.
Observando o valor do certificado retornado (ou seja, antes de excluí-lo), vemos o problema. O problema não foi eu adicionar o segundo certificado, mas o primeiro certificado deixou o gateway em um estado inválido, apesar de ter dito que foi bem-sucedido quando concluí essa etapa.
Causa raiz
Experimentei algumas opções (por exemplo, certificados emitidos pelo LetsEncrypt, vários nomes de certificados e senhas de exportação). Eventualmente, descobri que usar uma senha de exportação que não continha o
£
símbolo de libra ( ) e um nome de certificado que inclui um hífen (-
) me permitiu criar um ouvinte que não fazia com que o gateway do aplicativo atingisse um erro de provisionamento / vá para um estado inválido.Descobri que, se eu tentasse instalar o certificado por meio de um keyvault, ele apresentava esse erro. No entanto, se eu fiz o upload do arquivo PFX diretamente (através da lâmina 'ouvintes' no portal), funcionou bem - e se eu o alterei de VOLTA para obter o certificado do keyvault, tudo funcionou bem.