All Products
Search
Document Center

Alibaba Cloud Service Mesh:Mengelola sertifikat gerbang dengan cert-manager

Last Updated:Aug 25, 2026

cert-manager adalah sistem manajemen siklus hidup sertifikat yang mengotomatiskan permintaan dan penerapan sertifikat. Anda dapat menggunakan cert-manager untuk menerbitkan sertifikat bagi gerbang ASM, sehingga mengamankan layanan yang diakses melalui gerbang tersebut dengan HTTPS dan memastikan data dienkripsi selama transmisi. Topik ini menjelaskan cara menggunakan cert-manager untuk mengelola sertifikat gerbang.

Informasi latar belakang

cert-manager dapat menerbitkan sertifikat tanda tangan sendiri (self-signed certificate) dan sertifikat divalidasi DNS (DNS-validated certificate), yang memungkinkan akses ke layanan melalui gerbang ASM menggunakan HTTPS. Perbedaan antara kedua jenis sertifikat tersebut adalah sebagai berikut:

  • Sertifikat tanda tangan sendiri menyediakan enkripsi tetapi tidak menyediakan verifikasi identitas. Sertifikat ini dapat digunakan untuk mengakses gerbang ASM melalui HTTPS dari alat baris perintah (command-line tools). Namun, browser web tidak mempercayai sertifikat tanda tangan sendiri dan akan menampilkan peringatan keamanan, sehingga mencegah akses melalui browser.

  • Sertifikat divalidasi DNS diterbitkan oleh Otoritas Sertifikat (Certificate Authority/CA) tepercaya dan menyediakan enkripsi sekaligus verifikasi identitas. Sertifikat ini menawarkan keamanan lebih tinggi dibandingkan sertifikat tanda tangan sendiri serta dipercaya oleh browser web. Anda dapat menggunakannya untuk mengakses gerbang ASM melalui HTTPS baik dari alat baris perintah maupun browser web.

Catatan

Jika Anda mengalami error saat menggunakan cert-manager di kluster bidang data (data plane) ASM, bergabunglah dengan grup DingTalk (ID: 30421250) untuk mendapatkan bantuan.

Prasyarat

Instal cert-manager

  1. Instal Helm di mesin lokal Anda. Untuk informasi selengkapnya, lihat Helm.

  2. Hubungkan ke kluster Anda menggunakan kubectl. Untuk informasi selengkapnya, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.

  3. Jalankan perintah berikut untuk membuat namespace cert-manager:

    kubectl create namespace cert-manager
  4. Jalankan perintah berikut untuk menambahkan repositori chart cert-manager:

    helm repo add jetstack https://charts.jetstack.io
  5. Jalankan perintah berikut untuk memperbarui repositori chart cert-manager:

    helm repo update
  6. Jalankan perintah berikut untuk menginstal cert-manager.

    Catatan

    Versi cert-manager harus kompatibel dengan versi Kubernetes Anda. Untuk informasi tentang kompatibilitas versi, lihat Supported Releases.

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

Terbitkan sertifikat tanda tangan sendiri

Langkah 1: Hasilkan sertifikat tanda tangan sendiri

  1. Buat file bernama issuer.yaml dengan konten berikut.

    Tampilkan 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. Jalankan perintah berikut untuk membuat CA tanda tangan sendiri guna menerbitkan sertifikat workload:

    kubectl apply -f issuer.yaml -n istio-system
  3. Jalankan perintah berikut untuk memverifikasi bahwa Secret sertifikat telah dibuat:

    kubectl get secret -n istio-system 

    Output yang diharapkan:

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

Langkah 2: Verifikasi akses melalui HTTPS

  1. Terapkan aplikasi httpbin. Untuk informasi selengkapnya, lihat Terapkan aplikasi httpbin.

  2. Modifikasi Gateway untuk aplikasi httpbin.

    Anda dapat melakukan modifikasi ini dari baris perintah menggunakan file kubeconfig untuk instans ASM Anda, atau melalui Konsol ASM dengan mengubah YAML pada halaman Gateway. Untuk informasi selengkapnya, lihat Kelola aturan Gateway.

    Contoh YAML berikut menambahkan pendengar HTTPS pada Port 443 yang menggunakan sertifikat yang dibuat oleh cert-manager.

    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. Jalankan perintah berikut untuk mendapatkan alamat IP gerbang masuk:

    kubectl get svc -n istio-system -l istio=ingressgateway
  4. Jalankan perintah berikut untuk mengakses aplikasi httpbin melalui HTTPS:

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

    Jika permintaan berhasil, kode status 418 akan dikembalikan. Domain untuk mengakses gerbang adalah istio-ingressgateway-certs, yang sesuai dengan commonName yang ditetapkan dalam resource Certificate.