Sobes.tech
Middle+

Aké centralizované prostriedky používate na aktualizáciu a sledovanie stavu certifikátov na koncových zariadeniach?

sobes.tech AI

Odpoveď od AI

Pre centralizované riadenie a sledovanie certifikátov používam nasledovné nástroje:

  1. HashiCorp Vault:
    • Secrets Engine pki. Umožňuje vydávať a odvolávať certifikáty cez API. Integruje sa s Ansible, Terraform, Kubernetes.
    • Používam na automatické vytváranie a aktualizáciu certifikátov pre služby (TLS, mTLS).
  2. Cert-Manager (pre Kubernetes):
    • Nativne sa integruje s Kubernetesom na automatické vydávanie certifikátov od rôznych Issuer (Let's Encrypt, Vault, interné CA).
    • Stav certifikátov sledujem pomocou metrík certmanager_certificate_expiration_timestamp_seconds, ktoré sú vystavované pre Prometheus.
  3. OpenSSL + vlastné skripty:
    • Na inventarizáciu existujúcich certifikátov na serveroch.
    • Skripty zbierajú údaje o dobe platnosti (openssl x509 -noout -enddate -in certificate.pem), informácie o vydavateľovi a Subject.
    • Výsledky sú agregované do centralizovaného systému (napríklad, Prometheus, Grafana).
    #!/bin/bash
    
    CERT_FILE=$1
    
    if [ -f "$CERT_FILE" ]; then
        # Získanie dátumu ukončenia platnosti vo formáte YYYY-MM-DD HH:MM:SS
        END_DATE=$(openssl x509 -noout -enddate -in $CERT_FILE 2>/dev/null | cut -d= -f2)
        # Prevod na Unix timestamp
        END_TIMESTAMP=$(date -d "$END_DATE" +%s 2>/dev/null)
    
        if [ -n "$END_TIMESTAMP" ]; then
            echo "$END_TIMESTAMP"
        else
            echo "Chyba pri parsovaní dátumu ukončenia." 2>&1
            exit 1
        fi
    else
        echo "Súbor certifikátu nebol nájdený: $CERT_FILE" 2>&1
        exit 1
    fi
    
  4. Prometheus + Grafana:
    • Prometheus zbiera metriky o dobe platnosti certifikátov (napríklad cez Node Exporter, Blackbox Exporter pre vonkajšie kontroly, metriky cert-manager).
    • Nastavujem alarmy v Alertmanager na blížiaci sa čas expirácie certifikátu.
    • Grafana slúži na vizualizáciu stavu certifikátov, tvorbu dashboardov s časmi ich platnosti.
  5. Monitoring externých služieb:
    • Používam Blackbox Exporter na monitorovanie dostupnosti služieb cez HTTPS a kontrolu platnosti certifikátov z vonkajšej strany.
    modules:
      http_2xx:
        prober: http
        timeout: 5s
        http:
          preferred_ip_protocol: "ipv4"
          tls_config:
            insecure_skip_verify: false # Kontrola platnosti certifikátu
    

Proces vyzerá takto:

  • Vydávanie: Automatizované cez Vault alebo Cert-Manager.
  • Inventarizácia/Zber dát: Skripty alebo zabudované mechanizmy zbierajú metriky.
  • Agragácia/Monitorovanie: Prometheus zbiera metriky, Alertmanager upozorňuje na blížiaci sa koniec platnosti.
  • Vizuálna prezentácia: Grafana ukazuje stav všetkých certifikátov.
  • Aktualizácia: Automatická (Cert-Manager) alebo poloautomatická (cez Ansible/Terraform s Vault).

Toto je centralizovaný prístup, ktorý umožňuje úplnú viditeľnosť stavu certifikátov na všetkých kontrolovaných koncových zariadeniach a službách a minimalizuje prestoje spôsobené expirovanými certifikátmi.