DevOps-da sertifikatın vəziyyətinin dövri monitorinqi və avtomatik dəyişdirilməsi təcrübəniz nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Sertifikatların monitorinqi üçün mən alətlərin birləşməsindən istifadə edirəm. Veb serverlərdə və xidmətlərdə sertifikatların vəziyyəti və müddətinin əsas monitorinqi aşağıdakı kimi həyata keçirilir:
-
Prometheus Exporterləri:
ssl exporter: göstərilən endpointlərdən sertifikatların müddətini ölçən metrikləri toplayır.node exporter(mətn faylları ilə birlikdə): fayl sistemindəki sertifikat fayllarını monitorinq etmək üçün istifadə edilə bilər.
Bash və ya Python skriptləri müntəzəm olaraq sertifikatların vəziyyətini yoxlayır (məsələn,
openssl x509 -in cert.pem -noout -enddate) və nəticəninode exporter(textfile collector) üçün başa düşülən formata qeyd edir. -
Alertmanager:
- Prometheus metriklərinə əsaslanaraq xəbərdarlıqları aktivləşdirmək üçün Alertmanager-də qaydalar qururam (məsələn, 30, 7 və 1 gün əvvəl).
- Bildirişlər Slack, email və ya digər əlaqə kanallarına göndərilir.
Avtomatik sertifikat yeniləməsi adətən certbot və ya lego kimi ACME müştəriləri ilə həyata keçirilir.
-
Tapşırıq planlaşdırılması: Cron və ya sistem timerləri (systemd timers) ACME müştərisini işə salır, sertifikatları yoxlayır və yeniləyir.
# Certbot üçün cron nümunəsi 0 */12 * * * root certbot renew --quiet --standalone --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" -
CI/CD vasitəsilə avtomatlaşdırma: Kubernetes ilə işləyən mühitlər və ya daha mürəkkəb ssenarilər üçün, sertifikatların yenilənmə prosesi CI/CD pipeline-ına inteqrasiya oluna bilər.
- Məsələn, TLS ilə Ingress obyektləri olan Kubernetes klasterində,
cert-managersertifikatların verilməsi və yenilənməsini avtomatlaşdırır, Controller və CRD istifadə edir.
# cert-manager üçün anotasiya ilə Ingress nümunəsi 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 - Məsələn, TLS ilə Ingress obyektləri olan Kubernetes klasterində,
-
Konfiqurasiyaların yenilənməsi: Uğurlu sertifikat yeniləməsindən sonra, skriptlər və ya pipeline-lər xidmətləri yenidən başlatır və ya konfiqurasiyaları yenidən oxuyur ki, onlar yeni sertifikatı istifadə etsinlər.
Monitorinq və avtomatlaşdırma birləşməsi, müddəti bitmiş sertifikatlar səbəbindən xidmətlərin uğursuzluq riskini minimuma endirir.