Sobes.tech
Middle+

რა ცენტრალიზებულ საშუალებებს იყენებთ საბოლოო მოწყობილობებზე სერთიფიკატების მდგომარეობის განახლებისა და მონიტორინგისთვის?

sobes.tech AI

პასუხი AI-სგან

Կենտրոնական կառավարման և սերտիֆիկատների մոնիտորինգի համար օգտագործում եմ հետևյալ գործիքները:

  1. HashiCorp Vault:
    • Secrets Engine pki. API-ով թույլ է տալիս տրամադրել և հետ կանչել սերտիֆիկատները: Ինտեգրացիա ունի Ansible, Terraform, Kubernetes-ների հետ:
    • Օգտագործում եմ ավտոմատ ստեղծման և թարմացման համար ծառայությունների (TLS, mTLS) համար:
  2. Cert-Manager (Kubernetes-ի համար):
    • Նատիվ կերպով ինտեգրվում է Kubernetes-ի հետ ավտոմատ սերտիֆիկատների տրամադրման համար տարբեր Issuer-ներից (Let's Encrypt, Vault, ներքին CA):
    • Սերտիֆիկատների վիճակը հետևվում է certmanager_certificate_expiration_timestamp_seconds մետրիկների միջոցով, որոնք արտահայտվում են Prometheus-ի համար:
  3. OpenSSL + հարմարեցված սցենարներ:
    • Ներկայիս սերտիֆիկատների ինվենտարիզացիայի համար սերվերների վրա:
    • Սցենարները հավաքում են տվյալներ գործողության ժամկետի մասին (openssl x509 -noout -enddate -in certificate.pem), հրատարակչի և Subject-ի մասին:
    • Արդյունքները կենտրոնացված համակարգում (օրինակ, Prometheus, Grafana) են հավաքվում:
    #!/bin/bash
    
    CERT_FILE=$1
    
    if [ -f "$CERT_FILE" ]; then
        # Մөնտատի ավարտի ամսաթիվը YYYY-MM-DD HH:MM:SS ձևաչափով ստանում ենք
        END_DATE=$(openssl x509 -noout -enddate -in $CERT_FILE 2>/dev/null | cut -d= -f2)
        # Փոխարկում Unix timestamp-ով
        END_TIMESTAMP=$(date -d "$END_DATE" +%s 2>/dev/null)
    
        if [ -n "$END_TIMESTAMP" ]; then
            echo "$END_TIMESTAMP"
        else
            echo "Ավարտման ամսաթվի վերլուծության սխալ." 2>&1
            exit 1
        fi
    else
        echo "Սերտիֆիկատի ֆայլը չի գտնվել: $CERT_FILE" 2>&1
        exit 1
    fi
    
  4. Prometheus + Grafana:
    • Prometheus հավաքում է սերտիֆիկատների գործողության ժամկետի մասին մետրիկներ (օրինակ, Node Exporter, Blackbox Exporter արտաքին ստուգումների համար, cert-manager մետրիկներ):
    • Կարգավորում եմ Alertmanager-ում ծանուցումներ մոտեցող ժամկետի ավարտի մասին:
    • Grafana-ն օգտագործվում է սերտիֆիկատների վիճակի վիզուալիզացման համար, դաշբորդներ ստեղծելու համար:
  5. Արտաքին ծառայությունների մոնիտորինգ:
    • Օգտագործում եմ Blackbox Exporter՝ ծառայությունների հասանելիությունը HTTPS-ով մոնիտորինգի և վավերականության ստուգման համար արտաքին կողմից:
    modules:
      http_2xx:
        prober: http
        timeout: 5s
        http:
          preferred_ip_protocol: "ipv4"
          tls_config:
            insecure_skip_verify: false # Վավերականության ստուգում
    

Процես նման է.

  • Հայտարարում: Ավտոմատ կերպով Vault կամ Cert-Manager-ով:
  • Ինվենտարիզացիա/Տվյալների հավաքում: Սցենարներ կամ ինտեգրված մեխանիզմներ հավաքում են մետրիկներ:
  • Ագրեգացիա/Մոնիտորինգ: Prometheus հավաքում է մետրիկներ, Alertmanager-ը ծանուցում է մոտեցող ժամկետի մասին:
  • Վիզուալիզացիա: Grafana-ն ցույց է տալիս բոլոր սերտիֆիկատների վիճակը:
  • Թարմացում: Ավтоматիկ (Cert-Manager) կամ կիսաավтоматիկ (հետո Ansible/Terraform և Vault):

Սա կենտրոնական մոտեցում է, որը թույլ է տալիս ամբողջական տեսանելիություն ունենալ սերտիֆիկատների վիճակի մասին բոլոր վերահսկվող վերջնական սարքերում և ծառայություններում, ինչպես նաև նվազեցնել ժամկետի ավարտից հետո առաջացած ընդհատումները։