SSL Sertifikası

cert-manager ile Otomatik Sertifika

cert-manager ile Kubernetes'te sertifikaları otomatik almak ve yenilemek: ClusterIssuer, Ingress anotasyonu ve sorun giderme komutları.

cert-manager, Kubernetes kümesinde sertifikaları birinci sınıf kaynak olarak yöneten ve süresi dolmadan önce yenileyen bir denetleyicidir. Sertifikayı bir YAML nesnesi olarak tanımlarsınız; gerisini denetleyici halleder.

Temel bileşenler

  • Issuer / ClusterIssuer: sertifikayı kimin vereceğini belirtir (ACME, CA, Vault vb.). ClusterIssuer tüm namespace'lerde kullanılabilir.
  • Certificate: istenen alan adlarını ve sonucun yazılacağı Secret adını tanımlar.
  • Secret: özel anahtar ve sertifikanın saklandığı yer; Ingress buradan okur.

Let's Encrypt ile ClusterIssuer örneği

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: admin@example.com
    privateKeySecretRef:
      name: letsencrypt-account-key
    solvers:
    - http01:
        ingress:
          ingressClassName: nginx

Ingress üzerinden otomatik istek

metadata:
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  tls:
  - hosts: [app.example.com]
    secretName: app-example-tls

Bu anotasyonla cert-manager, Ingress için Certificate nesnesini kendisi oluşturur. Durumu şu komutlarla izleyin:

kubectl get certificate -A
kubectl describe certificate app-example-tls
kubectl get challenges -A

Sık sorunlar

  • HTTP-01 doğrulaması, 80 numaralı portun dışarıdan erişilebilir olmamasından takılır.
  • Wildcard için HTTP-01 kullanılamaz; DNS-01 çözücü gerekir.
  • Staging ile production issuer'ın karıştırılması tarayıcıda güvensiz zincir hatası verir.

Yenileme zamanı Certificate üzerindeki renewBefore alanıyla ayarlanabilir. Kurumsal güven gereken ortamlarda ticari bir sertifikayı Secret olarak içe aktarmak da mümkündür; seçenekler için SSL ürünlerimize göz atın.

Üretime geçmeden önce kontrol listesi

  1. Önce staging ClusterIssuer ile bir test Certificate oluşturup akışın çalıştığını görün.
  2. cert-manager sürümünü ve Kubernetes sürüm uyumluluğunu resmi dokümantasyondan kontrol edin.
  3. Secret'lara erişimi RBAC ile kısıtlayın; özel anahtar orada durur.
  4. cert-manager'ın Prometheus metriklerini izleyin ve bitişe yakın Certificate'lar için alarm kurun.

Bu makale faydalı oldu mu?

Bu konuyla ilgili SSL sertifikaları

Makalede geçen sertifika türlerine uygun ürünler.

Makale Ara

SSL Yenileme & Yönetim

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç