Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Service Mesh:cert-manager ile ağ geçidi sertifikalarını yönetin

Son Güncelleme:Oct 07, 2026

cert-manager, sertifika isteklerini ve dağıtımlarını otomatikleştiren bir sertifika yaşam döngüsü yönetim sistemidir. Bir ASM ağ geçidi için sertifika sağlamak üzere cert-manager'ı kullanabilirsiniz. Bu sayede ağ geçidi üzerinden erişilen hizmetleri HTTPS ile güvence altına alabilir ve verilerin iletim sırasında şifrelenmesini sağlayabilirsiniz. Bu konuda, ağ geçitleri için sertifikaları yönetmek amacıyla cert-manager'ın nasıl kullanılacağı açıklanmaktadır.

Arka plan bilgileri

cert-manager, bir ASM ağ geçidi üzerinden hizmetlere HTTPS ile erişmenizi sağlayan kendinden imzalı sertifikalar ve DNS doğrulamalı sertifikalar verebilir. Bu iki sertifika türü arasındaki farklar aşağıda belirtilmiştir:

  • Kendinden imzalı bir sertifika şifreleme sağlar ancak kimlik doğrulaması yapmaz. Komut satırı araçlarıyla ASM ağ geçidine HTTPS üzerinden erişmek için bu sertifikayı kullanabilirsiniz. Ancak web tarayıcıları kendinden imzalı sertifikalara güvenmez ve bir güvenlik uyarısı görüntüler; bu durum web tarayıcısı üzerinden erişimi engeller.

  • DNS doğrulamalı bir sertifika, güvenilir bir sertifika yetkilisi (CA) tarafından verilir ve hem şifreleme hem de kimlik doğrulaması sağlar. Kendinden imzalı sertifikadan daha yüksek güvenlik sunar ve web tarayıcıları tarafından güvenilir. DNS doğrulamalı bir sertifikayı, hem komut satırı araçlarından hem de web tarayıcılarından ASM ağ geçidine HTTPS üzerinden erişmek için kullanabilirsiniz.

Not

Bir ASM veri düzlemi kümesinde cert-manager kullanırken bir hata ile karşılaşırsanız destek almak için DingTalk grubuna (Kimlik: 30421250) katılın.

Önkoşullar

cert-manager yükleyin

  1. Yerel makinenize Helm yükleyin. Daha fazla bilgi için bkz. Helm.

  2. kubectl kullanarak kümenize bağlanın. Daha fazla bilgi için bkz. Bir kümenin kubeconfig dosyasını edinin ve kubectl kullanarak kümeye bağlanın.

  3. cert-manager ad alanını oluşturmak için aşağıdaki komutu çalıştırın:

    kubectl create namespace cert-manager
  4. cert-manager chart deposunu eklemek için aşağıdaki komutu çalıştırın:

    helm repo add jetstack https://charts.jetstack.io
  5. cert-manager chart deposunu güncellemek için aşağıdaki komutu çalıştırın:

    helm repo update
  6. cert-manager'ı yüklemek için aşağıdaki komutu çalıştırın.

    Not

    cert-manager sürümü, Kubernetes sürümünüzle uyumlu olmalıdır. Sürüm uyumluluğu hakkında bilgi için bkz. Desteklenen Sürümler.

    helm install \
      cert-manager jetstack/cert-manager \
      --namespace cert-manager \
      --version v1.14  \
      --set installCRDs=true

Kendinden imzalı bir sertifika verin

1. Adım: Kendinden imzalı bir sertifika oluşturun

  1. Aşağıdaki içeriğe sahip issuer.yaml adlı bir dosya oluşturun.

    Show issuer.yaml

    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: selfsigned
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: istio-ingressgateway-certs
    spec:
      isCA: true
      duration: 2160h # 90d
      secretName: istio-ingressgateway-certs
      commonName: istio-ingressgateway-certs
      subject:
        organizations:
        - cluster.local
        - cert-manager
      issuerRef:
        name: selfsigned
        kind: Issuer
        group: cert-manager.io
  2. İş yükü sertifikaları vermek üzere kendinden imzalı bir CA oluşturmak için aşağıdaki komutu çalıştırın:

    kubectl apply -f issuer.yaml -n istio-system
  3. Sertifika Secret'ının oluşturulduğunu doğrulamak için aşağıdaki komutu çalıştırın:

    kubectl get secret -n istio-system 

    Beklenen çıktı:

    NAME                                        TYPE                             DATA         AGE
    istio-ingressgateway-certs                  kubernetes.io/tls                3            68m

2. Adım: HTTPS üzerinden erişimi doğrulayın

  1. httpbin uygulamasını dağıtın. Daha fazla bilgi için bkz. httpbin uygulamasını dağıtın.

  2. httpbin uygulaması için Ağ Geçidi'ni değiştirin.

    Bu değişikliği, ASM örneğinizin kubeconfig dosyasını kullanarak komut satırından veya Gateway sayfasındaki YAML'i düzenleyerek ASM konsolunda yapabilirsiniz. Daha fazla bilgi için bkz. Ağ Geçidi kurallarını yönetin.

    Aşağıdaki YAML örneği, cert-manager tarafından oluşturulan sertifikayı kullanan 443 numaralı bağlantı noktasında bir HTTPS dinleyicisi ekler.

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: httpbin
      namespace: default
    spec:
      selector:
        istio: ingressgateway
      servers:
        - hosts:
            - '*'
          port:
            name: test
            number: 80
            protocol: HTTP
        - hosts:
            - '*'
          port:
            name: https
            number: 443
            protocol: HTTPS
          tls:
            credentialName: istio-ingressgateway-certs
            mode: SIMPLE
  3. Giriş ağ geçidinin IP adresini almak için aşağıdaki komutu çalıştırın:

    kubectl get svc -n istio-system -l istio=ingressgateway
  4. httpbin uygulamasına HTTPS üzerinden erişmek için aşağıdaki komutu çalıştırın:

    curl -k --resolve istio-ingressgateway-certs:443:${ASM_GATEWAY_IP} https://istio-ingressgateway-certs/status/418 -I

    İstek başarılı olursa 418 durum kodu döndürülür. Ağ geçidine erişim için kullanılan etki alanı istio-ingressgateway-certs değeridir ve bu değer, Certificate kaynağında ayarlanan commonName değeriyle eşleşir.