Como Monitorar Certificados Expirados em Todas as Assinaturas do Azure de Forma Eficiente
Manter certificados SSL/TLS atualizados e válidos é uma das melhores práticas de segurança para qualquer aplicação, especialmente quando estamos falando de Web Apps no Azure. Quando um certificado expira, ele pode causar problemas de acesso e até falhas de segurança nas suas aplicações. Para ajudar a garantir que suas aplicações no Azure App Service estejam sempre protegidas com certificados válidos, desenvolvi um procedimento que automatiza a verificação de certificados expirados em todas as assinaturas associadas à sua conta do Azure.
Neste artigo, vou compartilhar com vocês um script PowerShell que pode ser utilizado para monitorar certificados expirados de forma rápida e fácil, economizando tempo e evitando surpresas desagradáveis. Vamos aos detalhes!
1. Conectando-se ao Azure
A primeira etapa do procedimento é se autenticar no Azure usando o cmdlet Connect-AzAccount
. Se você ainda não estiver autenticado, será solicitado a inserir suas credenciais do Azure.
# Login no Azure (se necessário) Connect-AzAccount
2. Obter Todas as Assinaturas Disponíveis
Se você possui múltiplas assinaturas no Azure, o script irá automaticamente verificar cada uma delas. O cmdlet Get-AzSubscription
retorna todas as assinaturas vinculadas à sua conta, e com isso conseguimos iterar sobre cada uma delas.
# Obter todas as assinaturas disponíveis
$subscriptions = Get-AzSubscription
3. Verificando Certificados Expirados
Para garantir que o script verifique todos os certificados SSL/TLS em cada assinatura, utilizamos o cmdlet Get-AzWebAppCertificate
. A cada iteração, o script verifica se algum certificado expirou, comparando a data de expiração com a data atual ($today
). Caso um certificado esteja expirado, ele será listado, com o thumbprint e a data de expiração, além do Resource Group ao qual ele pertence.
Quando um certificado expirado é encontrado, o script exibe informações detalhadas, como o Thumbprint, a data de expiração e o Resource Group. Isso garante que você tenha todas as informações necessárias para revisar ou renovar os certificados manualmente.
=========================================================================
# Login no Azure (se necessário)
Connect-AzAccount
# Obter todas as assinaturas disponíveis
$subscriptions = Get-AzSubscription
# Data atual
$today = Get-Date
foreach ($sub in $subscriptions) {
Write-Output " Verificando certificados na assinatura: $($sub.Name) ($($sub.Id))"
# Definir o contexto para a assinatura atual
Set-AzContext -SubscriptionId $sub.Id
# Obter todos os certificados disponíveis na assinatura
$certificates = Get-AzWebAppCertificate
# Verificar se há certificados na assinatura
if ($certificates) {
$foundExpired = $false # Flag para indicar se há certificados expirados
foreach ($cert in $certificates) {
# Verificar se o certificado está expirado
if ($cert.ExpirationDate -lt $today) {
Write-Output " Certificado expirado encontrado:"
Write-Output " ➤ Thumbprint: $($cert.Thumbprint)"
Write-Output " ➤ Expiração: $($cert.ExpirationDate)"
Write-Output " ➤ Resource Group: $($cert.ResourceGroupName)"
Write-Output "--------------------------------------------"
$foundExpired = $true
}
}
if (-not $foundExpired) {
Write-Output " Nenhum certificado expirado encontrado na assinatura: $($sub.Name)."
}
} else {
Write-Output " Nenhum certificado encontrado na assinatura: $($sub.Name)."
}
}
O script executa a verificação em todas as assinaturas associadas à sua conta do Azure. Ele irá listar todos os certificados expirados, fornecendo informações como thumbprint, data de expiração e o resource group onde o certificado foi encontrado. Dessa forma, você poderá revisar e renovar certificados expirados de maneira rápida e eficaz.Este procedimento é essencial para garantir a continuidade e a segurança dos serviços da sua organização, pois evita o risco de serviços ficarem offline devido à expiração dos certificados SSL/TLS.
Comentários
Postar um comentário