Sobes.tech
Middle+

Milyen központosított eszközöket használ a végberendezéseken lévő tanúsítványok állapotának frissítésére és nyomon követésére?

sobes.tech MI

Válasz az MI-től

A tanúsítványok központi kezeléséhez és megfigyeléséhez a következő eszközöket használom:

  1. HashiCorp Vault:
    • Secrets Engine pki. Lehetővé teszi tanúsítványok kiadását és visszavonását API-n keresztül. Integrálódik az Ansible, Terraform, Kubernetes rendszerekkel.
    • Automatikus tanúsítványkészítéshez és frissítéshez használom szolgáltatásokhoz (TLS, mTLS).
  2. Cert-Manager (Kuberneteshez):
    • Natív módon integrálódik a Kubernetes-szel a különböző Issuer-ek (Let's Encrypt, Vault, belső CA) által kiadott tanúsítványok automatikus kiadásához.
    • A tanúsítványok állapotát metrikák certmanager_certificate_expiration_timestamp_seconds segítségével figyelem, amelyek a Prometheus számára vannak kitéve.
  3. OpenSSL + egyedi szkriptek:
    • A meglévő tanúsítványok leltárba vételéhez a szervereken.
    • A szkriptek az érvényességi időt (openssl x509 -noout -enddate -in certificate.pem) és a kibocsátó, Subject információkat gyűjtik.
    • Az eredményeket központosított rendszerbe (pl. Prometheus, Grafana) gyűjtik.
    #!/bin/bash
    
    CERT_FILE=$1
    
    if [ -f "$CERT_FILE" ]; then
        # Az érvényesség végdátumának lekérése YYYY-MM-DD HH:MM:SS formátumban
        END_DATE=$(openssl x509 -noout -enddate -in $CERT_FILE 2>/dev/null | cut -d= -f2)
        # Átalakítás Unix timestamp-re
        END_TIMESTAMP=$(date -d "$END_DATE" +%s 2>/dev/null)
    
        if [ -n "$END_TIMESTAMP" ]; then
            echo "$END_TIMESTAMP"
        else
            echo "Hiba az end date elemzésekor." 2>&1
            exit 1
        fi
    else
        echo "Tanúsítványfájl nem található: $CERT_FILE" 2>&1
        exit 1
    fi
    
  4. Prometheus + Grafana:
    • A Prometheus gyűjti a tanúsítványok érvényességi idejéről szóló metrikákat (pl. Node Exporter, Blackbox Exporter külső ellenőrzésekhez, cert-manager metrikák).
    • Értesítéseket állítok be az Alertmanager-ben a tanúsítvány lejáratához közeledve.
    • A Grafana vizualizálja a tanúsítványok állapotát, dashboardokat készít az érvényességi időkről.
  5. Külső szolgáltatások megfigyelése:
    • A Blackbox Exporter-t használom a szolgáltatások elérhetőségének ellenőrzésére HTTPS-en keresztül, és a tanúsítványok érvényességének ellenőrzésére külső oldalról.
    modules:
      http_2xx:
        prober: http
        timeout: 5s
        http:
          preferred_ip_protocol: "ipv4"
          tls_config:
            insecure_skip_verify: false # A tanúsítvány érvényességének ellenőrzése
    

A folyamat a következőképpen néz ki:

  • Kibocsátás: Automatizált Vault vagy Cert-Manager segítségével.
  • Leltár / adatok gyűjtése: Szkriptek vagy beépített gyűjtő mechanizmusok gyűjtik a metrikákat.
  • Összegzés / megfigyelés: A Prometheus gyűjti a metrikákat, az Alertmanager értesítést küld a közelgő lejáratról.
  • Vizuális megjelenítés: A Grafana mutatja az összes tanúsítvány állapotát.
  • Frissítés: Automatikus (Cert-Manager) vagy félautomata (Ansible/Terraform és Vault segítségével).

Ez egy központosított megközelítés, amely lehetővé teszi a tanúsítványok állapotának teljes láthatóságát minden ellenőrzött végberendezésen és szolgáltatáson, minimalizálva a lejárt tanúsítványok miatti leállásokat.