bg-tutorials

Kubernetes’te ACME SSL Sertifikası Nasıl Kurulur?

Kubernetes’te bir ACME SSL sertifikası yüklemek, cert-manager gibi olgun araçlar ve ticari CA’ların geniş desteği sayesinde artık standartlaştırılmış ve esnek bir süreçtir. İster NGINX Ingress, Traefik veya başka bir ağ geçidinin arkasında üretim iş yükleri çalıştırıyor olun, güvenli HTTPS’yi tam kontrolle otomatikleştirebilirsiniz.

Kubernetes'e ACME SSL Yükleme

Bu kılavuz size cert-manager kullanarak Kubernetes’te bir ACME SSL sertifikasının nasıl kurulacağını gösterecektir. Kurulum, Harici Hesap Bağlama (EAB) ile bir sertifika veren ayarlama ve giriş hizmetlerinizi korumak için sertifika verme konularını ele alacağız.


İhtiyacınız Olanlar

Dalmadan önce, emin olun:

  • Çalışan bir Kubernetes kümeniz var (v1.23+ önerilir)
  • kubectl yapılandırıldı ve çalışıyor
  • Giriş denetleyicinize erişiminiz var (örn. NGINX, Traefik)
  • Etki alanınız giriş denetleyicinizin genel IP’sine işaret eder
  • ACME uyumlu CA’nızdan EAB kimlik bilgilerine sahipsiniz:
    • ACME Dizin URL’si (örn. https://acme.example.com/v2/DV)
    • EAB Anahtar Tanımlayıcı (KID)
    • EAB HMAC Anahtarı

Not: https://acme.example.com/v2/DV bu kılavuz boyunca yer tutucu ACME dizin URL’si olarak kullanılmıştır. Bunu sertifika yetkilinizden gelen gerçek uç nokta ile değiştirin.


Adım 1 – cert-manager’ı yükleyin

cert-manager en yaygın kullanılan Kubernetes-yerel ACME istemcisidir. Sertifika verme ve yenilemeyi yöneten bir denetleyici olarak çalışır.

Helm aracılığıyla yükleyin (üretim için tercih edilir):

kubectl create namespace cert-manager
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--version v1.14.4 \
--set installCRDs=true

Birkaç saniye bekleyin ve tüm kapsüllerin çalıştığını onaylayın:

kubectl get pods -n cert-manager

Üç pod görmelisiniz: cert-manager, cert-manager-webhook ve cert-manager-cainjector.


Adım 2 – EAB Kimlik Bilgileri için Kubernetes Secret Oluşturun

EAB anahtarınızı güvenli bir şekilde saklamak için bir Kubernetes sırrı oluşturun:

kubectl create secret generic acme-eab-secret \
--namespace cert-manager \
--from-literal=eab-kid="YOUR_EAB_KID" \
--from-literal=eab-hmac-key="YOUR_EAB_HMAC_KEY"

Gerçek kimlik bilgilerinizle değiştirin. Kopyala-yapıştır boşluklarından kaçının.


Adım 3 – Bir ClusterIssuer veya Issuer tanımlayın

Şimdi, EAB kimlik bilgilerini kullanarak cert-manager’ı ACME CA’nıza bağlayan bir ClusterIssuer (tüm ad alanları için) veya Issuer (tek ad alanı) kaynağı oluşturun.

İşte örnek bir ClusterIssuer YAML:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: acme-issuer
spec:
acme:
server: https://your.acme-server.com/v2/DV
email: [email protected]
privateKeySecretRef:
name: acme-private-key
externalAccountBinding:
keyID: YOUR_EAB_KID
keySecretRef:
name: acme-eab-secret
key: eab-hmac-key
solvers:
- http01:
ingress:
class: nginx

Uygula:

kubectl apply -f clusterissuer.yaml

ingress.class: nginx yerine traefik, nginx-internal veya ingress sınıfınız ne ise onu yazın. Bunu ingress denetleyici belgelerinizde bulabilirsiniz.


Adım 4 – Bir Sertifika Kaynağı Oluşturun

ClusterIssuer’ınız hazır olduğunda, cert-manager’a hangi etki alanını güvence altına alacağını söyleyen bir Sertifika kaynağı oluşturun. İşte bir örnek:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: my-ssl-cert
namespace: default
spec:
secretName: my-ssl-cert-tls
issuerRef:
name: acme-issuer
kind: ClusterIssuer
commonName: yourdomain.com
dnsNames:
- yourdomain.com
- www.yourdomain.com

Uygula:

kubectl apply -f certificate.yaml

cert-manager, sertifika vereni kullanacak, meydan okumayı giriş yoluyla çözecek ve verilen sertifikayı bir Kubernetes TLS sırrı olarak saklayacaktır.


Adım 5 – Girişinizde Sertifikaya Referans Verin

Oluşturulan sertifikayı kullanmak için giriş kuralınızı güncelleyin:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
namespace: default
annotations:
cert-manager.io/cluster-issuer: acme-issuer
spec:
tls:
- hosts:
- yourdomain.com
- www.yourdomain.com
secretName: my-ssl-cert-tls
rules:
- host: yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: your-service
port:
number: 80

Uygula:

kubectl apply -f ingress.yaml

cert-manager ek açıklamayı algıladığında, ACME zorluğunu çözmeye başlayacak ve sertifikanızı verecektir.


Adım 6 – Sertifika Doğrulama ve Otomatik Yenileme

Her şeyin çalıştığını doğrulamak için:

kubectl describe certificate my-ssl-cert

Başarıyla verilen Sertifikayı arayın.

Yenileme kurulumunu kontrol etmek için çalıştırın:

kubectl get certificaterequests

cert-manager, sürenin dolmasından ~30 gün önce otomatik olarak yenileme işlemini gerçekleştirir. Bu şekilde bir yenileme simülasyonu yapabilirsiniz:

kubectl cert-manager renew my-ssl-cert


Sık Sorulan Sorular

Kubernetes’te ACME SSL kurulumu, özellikle giriş denetleyicileri, Sırlar ve DNS kayıtlarıyla uğraşırken biraz soyut gelebilir. Aşağıda, ister cert-manager ister alternatif bir kurulum kullanıyor olun, Kubernetes ortamında ACME sertifikalarını yüklerken geliştiricilerin karşılaştığı bazı yaygın soruları yanıtlıyoruz.

HTTP-01 yerine DNS-01 kullanabilir miyim?

Evet, cert-manager Cloudflare, AWS ve Google Cloud DNS gibi sağlayıcılarla DNS doğrulamasını destekler. Port 80’i göstermiyorsanız bunu kullanın.

cert-manager üretime hazır mı?

Kesinlikle. İşletmelerde ve genel bulutlarda büyük Kubernetes kümeleri için SSL’ye güç verir.

Kubernetes’te ACME ile joker sertifika kullanabilir miyim?

Evet, ancak joker sertifikalar DNS-01 doğrulaması gerektirir, bu da HTTP zorluklarını kullanmak yerine DNS kayıtlarını güncellemeyi içerir. DNS sağlayıcınızın otomasyonu (API aracılığıyla) desteklediğini onaylayın ve dns01 çözücüsünü cert-manager kurulumunuzda buna göre yapılandırın.

Son Sözler

Artık cert-manager ve ACME uyumlu bir sertifika yetkilisi kullanarak Kubernetes’te bir ACME SSL sertifikasının nasıl kurulacağını biliyorsunuz. Bu kurulum tamamen otomatiktir ve modern Kubernetes ortamları için ölçeklenebilir. Kümenizden ayrılmadan güvenli HTTPS, otomatik yenileme ve Ingress ile sorunsuz entegrasyon elde edersiniz.

Bugün SSL Dragon’dan sipariş vererek SSL Sertifikalarında %10 indirimden yararlanın!

Hızlı düzenleme, güçlü şifreleme, %99,99 tarayıcı güvenilirliği, özel destek ve 25 günlük para iade garantisi. Kupon kodu: SAVE10

A detailed image of a dragon in flight
Tarafından yazıldı

SSL Sertifikaları konusunda uzmanlaşmış deneyimli içerik yazarı. Karmaşık siber güvenlik konularını açık, ilgi çekici içeriğe dönüştürmek. Etkili anlatımlar yoluyla dijital güvenliğin geliştirilmesine katkıda bulunun.