Sobes.tech
Middle+

Kāda ir jūsu pieredze sertifikāta stāvokļa cikliskā uzraudzībā un tā automātiskā nomaiņā DevOps?

sobes.tech AI

Atbilde no AI

Sertifikātu uzraudzībai es izmantoju dažādu rīku kombināciju. Galvenā uzraudzība par sertifikātu stāvokli un derīguma termiņu tīmekļa serveros un pakalpojumos tiek īstenota ar:

  1. Prometheus Exporters:

    • ssl exporter: apkopo metriku par sertifikātu derīguma termiņiem norādītajos endpointos.
    • node exporter (kopā ar teksta failiem): var tikt izmantots sertifikātu failu uzraudzībai failu sistēmā.

    Bash vai Python skripti regulāri pārbauda sertifikātu stāvokli (piemēram, openssl x509 -in cert.pem -noout -enddate) un ieraksta rezultātu formātā, ko saprot node exporter (textfile collector).

  2. Alertmanager:

    • Es konfigurēju Alertmanager noteikumus brīdinājumiem (piemēram, 30, 7 un 1 diena pirms derīguma termiņa beigām) pēc Prometheus metriku datiem.
    • Brīdinājumi tiek nosūtīti uz Slack, e-pastu vai citām saziņas kanāliem.

Automātiska sertifikātu nomaiņa parasti tiek īstenota ar ACME klientiem, piemēram, certbot vai lego.

  1. Uzdevumu plānošana:

    • Cron uzdevumi vai sistēmas taimeri (systemd timers) palaida ACME klientu sertifikātu pārbaudei un atjaunināšanai.
    # Piemērs cron ierakstam certbot
    0 */12 * * * root certbot renew --quiet --standalone --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
    
  2. Automatizācija ar CI/CD:

    • Sarežģītākos scenārijos vai Kubernetes vidē sertifikātu atjaunošanas process var tikt integrēts CI/CD pipeline.
    • Piemēram, izmantojot Kubernetes Ingress objektus ar TLS, sertifikātu pārvaldnieks cert-manager automātiski izsniedz un atjauno Let's Encrypt sertifikātus, izmantojot Controller un Custom Resource Definitions (CRD).
# Ingress ar anotācijām cert-manager piemērs
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. Konfigurāciju atjaunināšana:
    • Pēc veiksmīgas sertifikātu atjaunošanas skripti vai pipeline pārstartē vai pārbauda pakalpojumu konfigurācijas (web serverus, slodzes balansētājus), lai tie sāktu izmantot jauno sertifikātu.

Sajaukums starp uzraudzību un automatizāciju samazina risku, ka pakalpojumi var neizdoties dēļ derīguma termiņa beigām.