====== Automation ====== **Priority 1** - Reduces manual work and errors \\ **Target audience:** DevOps, Platform Teams Guides for automating certificate operations in a PQ-enabled PKI. ---- ===== Overview ===== flowchart TB subgraph TRIGGER["TRIGGER"] T1[Scheduled] T2[Event-based] T3[API Request] end subgraph PROCESS["AUTOMATION"] P1[ACME Client] P2[CI/CD Pipeline] P3[Cert-Manager] P4[Scheduled Job] end subgraph OUTPUT["RESULT"] O1[Certificate deployed] O2[Secrets rotated] O3[CRL updated] end T1 --> P4 --> O2 T2 --> P3 --> O1 T3 --> P1 --> O1 T3 --> P2 --> O1 style P1 fill:#fff3e0 style P2 fill:#e8f5e9 style P3 fill:#e3f2fd ---- ===== Scenarios ===== ^ Scenario ^ Description ^ Complexity ^ Use Case ^ | [[.:acme-integration|ACME Integration]] | Let's Encrypt / ACME protocol with PQ | Medium | Web servers, APIs | | [[.:cicd-code-signing|CI/CD Code Signing]] | Automatic signing in pipelines | High | Software releases | | [[.:cert-manager-k8s|Kubernetes Cert-Manager]] | Automate certificates in Kubernetes | High | Cloud-native apps | | [[.:scheduled-renewal|Scheduled Renewal]] | Automatic certificate renewal | Low | All servers | ---- ===== Decision Tree ===== flowchart TD A[New certificate needed] --> B{Environment?} B -->|Kubernetes| C[Cert-Manager] B -->|Classic servers| D{Internet-facing?} B -->|CI/CD Pipeline| E[Pipeline Signing] D -->|Yes| F[ACME/Let's Encrypt] D -->|No| G[Scheduled Renewal] C --> H[cert-manager.io + Issuer] F --> I[Certbot + Hook] G --> J[Cron + Script] E --> K[Sigstore/HSM] style C fill:#e3f2fd style F fill:#e8f5e9 style G fill:#fff3e0 style E fill:#fce4ec ---- ===== Prerequisites ===== | Component | Version | Purpose | |-----------|---------|---------| | OpenSSL | 3.6+ | PQ algorithms | | Certbot | 2.0+ | ACME client | | cert-manager | 1.12+ | Kubernetes | | HashiCorp Vault | 1.15+ | Secrets management | ---- ===== Quick Start ===== **1. Simplest Automation (Cron + Script):** # /etc/cron.weekly/cert-renew #!/bin/bash /usr/local/bin/renew-certificates.sh >> /var/log/cert-renew.log 2>&1 -> Details: [[.:scheduled-renewal|Scheduled Renewal]] **2. ACME for public web servers:** # Certbot with DNS challenge certbot certonly --dns-cloudflare -d example.com --deploy-hook /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh -> Details: [[.:acme-integration|ACME Integration]] **3. Kubernetes Cert-Manager:** apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: my-app-tls spec: secretName: my-app-tls issuerRef: name: pq-issuer kind: ClusterIssuer dnsNames: - app.example.com -> Details: [[.:cert-manager-k8s|Cert-Manager]] ---- ===== Related Documentation ===== * [[..:tagesgeschaeft:start|Daily Operations]] - Manual operations * [[..:monitoring:start|Monitoring]] - Automation monitoring * [[en:int:pqcrypt:developer:integration|Integration]] - API integration ---- << [[..:start|<- Operator Scenarios]] | [[.:acme-integration|-> ACME Integration]] >> ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>operator automation acme cicd cert-manager}}