Sobes.tech
Middle+

Jakie scentralizowane środki używasz do aktualizacji i monitorowania stanu certyfikatów na urządzeniach końcowych?

sobes.tech AI

Odpowiedź od AI

Do zarządzania i monitorowania certyfikatów w sposób scentralizowany używam następujących narzędzi:

  1. HashiCorp Vault:
    • Secrets Engine pki. Umożliwia wydawanie i unieważnianie certyfikatów przez API. Integruje się z Ansible, Terraform, Kubernetes.
    • Używam go do automatycznego tworzenia i aktualizacji certyfikatów dla usług (TLS, mTLS).
  2. Cert-Manager (dla Kubernetes):
    • Natywnie integruje się z Kubernetes, aby automatycznie wydawać certyfikaty od różnych issuerów (Let's Encrypt, Vault, wewnętrzne CA).
    • Status certyfikatów monitoruje się za pomocą metryk certmanager_certificate_expiration_timestamp_seconds, które są eksponowane dla Prometheus.
  3. OpenSSL + skrypty niestandardowe:
    • Do inwentaryzacji istniejących certyfikatów na serwerach.
    • Skrypty zbierają dane o ważności (openssl x509 -noout -enddate -in certificate.pem), informacje o wystawcy i Subject.
    • Wyniki są agregowane w systemie centralnym (np. 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 "Błąd parsowania daty końcowej." 2>&1
        exit 1
    fi
else
    echo "Nie znaleziono pliku certyfikatu: $CERT_FILE" 2>&1
    exit 1
fi
  1. Prometheus + Grafana:
    • Prometheus zbiera metryki o ważności certyfikatów (np. przez Node Exporter, Blackbox Exporter do zewnętrznych sprawdzeń, metryki cert-manager).
    • Konfiguruję alerty w Alertmanager na zbliżający się termin wygaśnięcia certyfikatu.
    • Grafana służy do wizualizacji stanu certyfikatów i tworzenia dashboardów z datami ich wygaśnięcia.
  2. Monitorowanie usług zewnętrznych:
    • Używam Blackbox Exporter do monitorowania dostępności usług przez HTTPS i sprawdzania ważności certyfikatów z zewnątrz.
modules:
  http_2xx:
    prober: http
    timeout: 5s
    http:
      preferred_ip_protocol: "ipv4"
      tls_config:
        insecure_skip_verify: false # Sprawdza ważność certyfikatu

Proces wygląda następująco:

  • Wydawanie: Automatyczne przez Vault lub Cert-Manager.
  • Inwentaryzacja/Zbieranie danych: Skrypty lub zintegrowane mechanizmy exporterów zbierają metryki.
  • Agregacja/Monitorowanie: Prometheus zbiera metryki, Alertmanager powiadamia o zbliżającym się wygaśnięciu.
  • Wizualizacja: Grafana pokazuje stan wszystkich certyfikatów.
  • Aktualizacja: Automatyczna (Cert-Manager) lub półautomatyczna (przez Ansible/Terraform z Vault).

To scentralizowane podejście pozwala na pełny wgląd w stan certyfikatów na wszystkich kontrolowanych urządzeniach i usługach, minimalizując przestoje z powodu wygasłych certyfikatów.