SSL sertifikası Kubernetes için nasıl kurulur?

Kubernetes, konteynerleştirilmiş uygulamaların yönetimi için kullanılan bir platformdur. Güvenlik, bu tür bir platformda son derece önemlidir, bu nedenle SSL (Secure Sockets Layer) sertifikalarının kullanımı vazgeçilmezdir. SSL sertifikaları, veri iletimi sırasında bilgilerin şifrelenmesini sağlayarak, kullanıcı ile sunucu arasında güvenli bir bağlantı oluşturur. Aşağıda, Kubernetes üzerinde SSL sertifikası kurulumuna dair adımlar detaylı bir şekilde açıklanmıştır.

SSL Sertifika Türleri

Kubernetes üzerinde kullanılabilecek SSL sertifikası türleri arasında Let’s Encrypt, self-signed (kendinden imzalı) ve ücretli sertifikalar bulunur. Let’s Encrypt, otomatik olarak güncellenebilen ve ücretsiz olan bir sertifika hizmetidir. Self-signed sertifikalar, genellikle geliştirme ve test ortamlarında kullanılırken, ücretli sertifikalar daha geniş çaplı ve güvenilir bir sertifika sunar.

Sertifika Otoritesi

Kubernetes, SSL sertifikalarının yönetimi için özel bir sertifika otoritesi (CA) oluşturmak üzere bir araç sağlar. Bu, kendi imzalı sertifikaların oluşturulmasını ve yönetilmesini kolaylaştırır. Bir CA ile, kendi SSL sertifikalarınızı oluşturabilir ve bunları Kubernetes kaynaklarında kullanabilirsiniz.

SSL Sertifikasının Oluşturulması

SSL sertifikası oluşturmak için önce bir sertifika isteği (CSR) oluşturulması gerekir. Bu işlem, genellikle OpenSSL gibi bir araç kullanılarak yapılır. Aşağıdaki komut ile bir özel anahtar ve CSR oluşturulabilir:

“`bash
openssl req -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.csr
“`

Bu komut, RSA 2048 bitlik bir anahtar oluşturarak `mydomain.key` ve `mydomain.csr` dosyalarını oluşturur. Daha sonra, bu CSR kullanılarak bir SSL sertifikası oluşturulabilir.

Kubernetes Secret Oluşturma

Oluşturulan sertifika ve özel anahtar, Kubernetes’te bir Secret nesnesi olarak kaydedilmelidir. Aşağıdaki komut ile bir Secret oluşturulabilir:

“`bash
kubectl create secret tls my-tls-secret –cert=mydomain.crt –key=mydomain.key
“`

Bu komut, `mydomain.crt` ve `mydomain.key` dosyalarını kullanarak, `my-tls-secret` adlı bir Secret oluşturur.

Ingress Kontrolcüsü Kurulumu

Bir SSL sertifikası kurmak için genellikle bir Ingress kontrolcüsü gereklidir. NGINX Ingress kontrolcüsü, Kubernetes üzerinde SSL yapılandırması için yaygın olarak kullanılır. NGINX Ingress kurulum işlemi için aşağıdaki komut kullanılabilir:

“`bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
“`

Bu komut, NGINX Ingress kontrolcüsünü Kubernetes cluster’ına yükleyecektir.

Ingress Kaynağı Oluşturma

Ingress kaynağı, HTTP ve HTTPS trafiğini yönlendirmek için yapılandırılmalıdır. Aşağıdaki örnek, bir Ingress kaynağının nasıl oluşturulacağını göstermektedir:

“`yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: “true”
spec:
tls:
– hosts:
– mydomain.com
secretName: my-tls-secret
rules:
– host: mydomain.com
http:
paths:
– path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
“`

Bu YAML dosyası, `my-ingress` adlı bir Ingress kaynağı oluşturur. `tls` kısmı, SSL sertifikasının kullanılacağı alan adı için yapılandırılır ve `secretName` ile daha önce oluşturulan Secret referans edilir. `rules` bölümü ise HTTP trafiğinin hangi servise yönlendirilmesi gerektiğini tanımlar.

SSL Sertifikasının Test Edilmesi

SSL sertifikası kurulumunun başarılı olup olmadığını test etmek için, tarayıcıda ilgili alan adı girilerek HTTPS üzerinden bağlantı kontrol edilmelidir. Ayrıca, aşağıdaki komut ile bağlantı durumunu incelemek mümkün olacaktır:

“`bash
curl -k https://mydomain.com
“`

Bu komut ile SSL sertifikasının doğru şekilde çalışıp çalışmadığı kontrol edilebilir. Eğer sertifika doğru şekilde kurulmuşsa, sunucu yanıtı alınacaktır.

Otomatik Sertifika Yenileme

Eğer Let’s Encrypt kullanılıyorsa, sertifikaların otomatik olarak yenilenmesi için Cert-Manager gibi bir araç kurulması önerilir. Cert-Manager, SSL sertifikalarının otomatik olarak alınması ve yenilenmesi için gerekli olan kaynakları yönetir. Kurulumdan sonra, Cert-Manager ile birlikte bir `Certificate` nesnesi tanımlanarak sertifika yönetimi otomatik hale getirilebilir.

Güvenlik Önlemleri

SSL sertifikalarının güvenli bir şekilde yönetilmesi, uygulamanın genel güvenliğini artırır. Sertifikaların, özel anahtarların saklanması ve sadece gerekli erişimlerin verilmesi önemlidir. Ayrıca, sertifika sürelerinin sonlanmasına karşı periyodik olarak kontrol yapılmalıdır.

Sonuç olarak, Kubernetes üzerinde SSL sertifikası kurmak, uygulamaların güvenliğini artırmak için önemli bir adımdır. İlgili adımların dikkatlice uygulanması, güvenli bir bağlantının sağlanmasını ve veri korumasının güçlendirilmesini mümkün kılmaktadır.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR