Sobes.tech
Middle+

Milline on teie kogemus sertifikaadi oleku tsüklilise jälgimise ja selle automaatse asendamise seadistamisel DevOpsis?

sobes.tech AI

Vastus AI-lt

Sertifikaatide jälgimiseks kasutan erinevate tööriistade kombinatsiooni. Põhijälgimine sertifikaatide oleku ja kehtivusaja osas veebiserverites ja teenustes toimub järgmiste vahenditega:

  1. Prometheus Exporters:

    • ssl exporter: kogub metrikat sertifikaatide kehtivusaja kohta määratud endpointidest.
    • node exporter (tekstifailidega): võib kasutada sertifikaadifailide jälgimiseks failisüsteemis.

    Bash või Python skriptid kontrollivad regulaarselt sertifikaatide olekut (näiteks openssl x509 -in cert.pem -noout -enddate) ja salvestavad tulemuse node exporter (textfile collector) mõistmatusse formaati.

  2. Alertmanager:

    • Konfigureerin Alertmanageris reegleid hoiatussõnumite käivitamiseks (näiteks 30, 7 ja 1 päev enne kehtivusaja lõppu) Prometheuse metrikate põhjal.
    • Hoiatused saadetakse Slacki, e-posti või teiste kanalite kaudu.

Automaatne sertifikaatide uuendamine toimub tavaliselt ACME klientide, näiteks certbot või lego, abil.

  1. Tööde planeerimine:

    • Cron-tööde või süsteemiaeglustite (systemd timers) abil käivitatakse ACME klient sertifikaatide kontrollimiseks ja uuendamiseks.
    # Näide cron kirjest certbot jaoks
    0 */12 * * * root certbot renew --quiet --standalone --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
    
  2. Automatiseerimine CI/CD kaudu:

    • Keerulisemate stsenaariumide või Kubernetesi keskkonna puhul võib sertifikaatide uuendamise protsess olla integreeritud CI/CD pipeline-iga.
    • Näiteks, kasutades Kubernetes Ingress objekte TLS-iga, automaatselt väljastab ja uuendab cert-manager sertifikaate, kasutades Controllerit ja Custom Resource Definitions (CRD).
# Näide Ingress'ist cert-manager'iga annotations-idega
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
  - hosts:
    - example.com
    secretName: example-com-tls
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80
  1. Konfiguratsioonide uuendamine:
    • Pärast sertifikaatide edukat uuendamist taaskäivitavad või uuesti loevad skriptid või pipeline teenuste konfiguratsioone (veebiserverid, koormuse jaotajad), et hakata kasutama uut sertifikaati.

Selle kombinatsiooni jälgimine ja automatiseerimine vähendavad riski teenuste katkestamiseks seetõttu, et sertifikaadid on aegunud.