Ответ
В инфраструктуре, которую я строил, управление TLS-сертификатами было автоматизировано и централизовано.
Для выпуска и автоматического обновления:
- Cert-Manager в Kubernetes: Это основной инструмент. Он работает как оператор в кластере, интегрируется с Let's Encrypt (или внутренним CA) и автоматически запрашивает, продлевает и применяет сертификаты к Ingress-ресурсам. Конфигурация через CRD:
apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: my-app-tls spec: secretName: my-app-tls-secret issuerRef: name: letsencrypt-prod kind: ClusterIssuer commonName: app.example.com dnsNames: - app.example.com - Hashicorp Vault с PKI Secrets Engine: Для внутренних сервисов и более сложных политик. Vault выступает в роли внутреннего центра сертификации, позволяет гибко настраивать TTL и роли.
Для мониторинга и алертинга:
- Prometheus + Blackbox Exporter: Blackbox exporter пробивает эндпойнты по HTTPS и экспортирует метрику
probe_ssl_earliest_cert_expiry. В Prometheus правило алерта предупреждает за 30, 14 и 7 дней до истечения срока действия:- alert: SSLCertExpiringSoon expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 30 # 30 дней for: 5m labels: severity: warning annotations: summary: "Сертификат для {{ $labels.instance }} скоро истечёт" - Специализированные утилиты: Для простых проверок использовал
check_ssl_certиз Nagios-плагинов или самописные скрипты на Python с библиотекойcryptography, которые интегрировались в общую систему мониторинга.
Такой подход гарантирует, что ни один сертификат не «протухнет» неожиданно, а процесс обновления полностью автоматизирован.