Sobes.tech
Middle+

Que meios centralizados utiliza para atualizar e monitorizar o estado dos certificados nos dispositivos finais?

sobes.tech IA

Resposta da IA

Para a gestão e monitorização centralizada de certificados, utilizo as seguintes ferramentas:

  1. HashiCorp Vault:
    • Motor de Segredos pki. Permite emitir e revogar certificados via API. Integra-se com Ansible, Terraform, Kubernetes.
    • Uso-o para criar e atualizar automaticamente certificados para serviços (TLS, mTLS).
  2. Cert-Manager (para Kubernetes):
    • Integra-se nativamente com Kubernetes para emitir automaticamente certificados de diferentes emissores (Let's Encrypt, Vault, CA internos).
    • O estado dos certificados é monitorizado através de métricas certmanager_certificate_expiration_timestamp_seconds, expostas ao Prometheus.
  3. OpenSSL + scripts personalizados:
    • Para inventariar os certificados existentes nos servidores.
    • Os scripts recolhem dados sobre a validade (openssl x509 -noout -enddate -in certificate.pem), informações do emissor e Subject.
    • Os resultados são agregados num sistema centralizado (por exemplo, Prometheus, Grafana).
#!/bin/bash

CERT_FILE=$1

if [ -f "$CERT_FILE" ]; then
    END_DATE=$(openssl x509 -noout -enddate -in $CERT_FILE 2>/dev/null | cut -d= -f2)
    END_TIMESTAMP=$(date -d "$END_DATE" +%s 2>/dev/null)

    if [ -n "$END_TIMESTAMP" ]; then
        echo "$END_TIMESTAMP"
    else
        echo "Erro ao analisar a data de fim." 2>&1
        exit 1
    fi
else
    echo "Ficheiro de certificado não encontrado: $CERT_FILE" 2>&1
    exit 1
fi
  1. Prometheus + Grafana:
    • Prometheus recolhe métricas sobre a validade dos certificados (por exemplo, através do Node Exporter, Exportador de caixa preta para verificações externas, métricas do cert-manager).
    • Configuro alertas no Alertmanager para o vencimento próximo do certificado.
    • Grafana é usado para visualizar o estado de todos os certificados e criar dashboards com as suas datas de validade.
  2. Monitorização de serviços externos:
    • Uso Blackbox Exporter para monitorizar a disponibilidade de serviços via HTTPS e verificar a validade dos certificados externamente.
modules:
  http_2xx:
    prober: http
    timeout: 5s
    http:
      preferred_ip_protocol: "ipv4"
      tls_config:
        insecure_skip_verify: false # Verifica a validade do certificado

O processo funciona assim:

  • Emissão: Automatizada via Vault ou Cert-Manager.
  • Inventário/Coleta de dados: Scripts ou mecanismos integrados de exportadores recolhem métricas.
  • Agregação/Monitorização: Prometheus recolhe métricas, Alertmanager notifica sobre vencimentos próximos.
  • Visualização: Grafana mostra o estado de todos os certificados.
  • Atualização: Automática (Cert-Manager) ou semi-automática (via Ansible/Terraform com Vault).

Esta é uma abordagem centralizada que permite ter uma visão completa do estado dos certificados em todos os dispositivos e serviços controlados, minimizando o tempo de inatividade devido a certificados expirados.