CodeBlanks Logo Icon CodeBlanks

TLS sonlandırma

Ingress üzerinde TLS sonlandırmayı öğrenirsin.

TLS sonlandırma

Ingress, HTTPS bağlantısını kendisi çözer (TLS sonlandırma) ve servise düz HTTP iletir. Sertifika bir kubernetes.io/tls Secret'ında tutulur ve spec.tls ile bağlanır:

spec:
  ingressClassName: nginx
  tls:
    - hosts:
        - magaza.example.com
      secretName: magaza-tls
  rules:
    - host: magaza.example.com
      ...

ingress-nginx, TLS tanımlı host'larda HTTP isteklerini varsayılan olarak HTTPS'e yönlendirir.

cert-manager

Sertifikaları elle yenilemek yerine cert-manager Let's Encrypt'ten otomatik alır ve yeniler. Ingress'e bir annotation eklemek yeterlidir; cert-manager Secret'ı oluşturur:

metadata:
  name: magaza
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt
spec:
  tls:
    - hosts: [magaza.example.com]
      secretName: magaza-tls        # cert-manager doldurur

Uygulama HTTPS'li Ingress

İki adım: önce magaza.crt ve magaza.key dosyalarından magaza-tls TLS Secret'ını oluşturan komutu yaz; ardından bir Ingress'in tls bölümünü yaz (tls: ile başlayarak): host magaza.example.com, secretName: magaza-tls.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl create secret tls magaza-tls --cert=magaza.crt --key=magaza.key

tls:
  - hosts:
      - magaza.example.com
    secretName: magaza-tls

Beklenen çıktı

secret/magaza-tls created
ingress.networking.k8s.io/magaza configured

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 tls.hosts'taki ad, rules'daki host ile aynı olmazsa ne olur?

  • Ingress silinir
  • HTTP kapanır
  • Fark etmez
  • O host için sertifika kullanılmaz; controller varsayılan (sahte) sertifikayı sunar Doğru cevap

Açıklama: Tarayıcı "güvensiz bağlantı" uyarısı gösterir.

2 Sertifikanın Secret'ını ver.

Soru
  tls:
    - hosts:
        - magaza.example.com
      ____: magaza-tls
Cevap
  tls:
    - hosts:
        - magaza.example.com
      secretName: magaza-tls

Açıklama: secretName kubernetes.io/tls türünde bir Secret'tır.

3 Eşleştir.

Kavram Anlamı
TLS sonlandırma HTTPS Ingress'te çözülür
spec.tls Sertifika bağlama
kubernetes.io/tls Secret türü
cert-manager Otomatik sertifika

İleri seviye bölümündeki tüm dersler