All Products
Search
Document Center

Container Compute Service:Konfigurasikan sertifikat untuk mengakses Layanan Knative melalui HTTPS

Last Updated:Jun 28, 2025

Jika Anda ingin menggunakan nama domain kustom untuk mengekspos Layanan Knative, disarankan untuk mengonfigurasi sertifikat guna mengamankan transmisi data. Knative memungkinkan Anda menggunakan DomainMapping untuk mengonfigurasi sertifikat dan mengakses Layanan melalui HTTPS.

Prasyarat

Knative telah diterapkan di kluster ACS. Untuk informasi lebih lanjut, lihat Terapkan Knative.

Langkah 1: Buat Layanan Knative

  1. Masuk ke Konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi sebelah kiri halaman detail kluster, pilih Applications > Knative.

  3. Pada tab Services di halaman Knative, atur Namespace ke default dan klik Create from Template. Buat Layanan Knative bernama helloworld-go dari Sample Template yang disediakan di konsol, lalu klik Create. Sebuah Layanan bernama helloworld-go akan dibuat.

    image.png

Langkah 2: Buat sertifikat yang dikelola sebagai Secret

Di Knative, Secret digunakan untuk menyimpan dan mengelola informasi sensitif seperti kunci, kata sandi, dan sertifikat. Contoh ini menggunakan OpenSSL untuk membuat sertifikat tanda tangan sendiri. File sertifikat dan kunci privat dienkripsi menggunakan Base64 dan disimpan dalam Secret di kluster. Berikut adalah cara membuat sertifikat tanda tangan sendiri yang dikelola sebagai Secret.

  1. Jalankan perintah OpenSSL berikut untuk membuat sertifikat tanda tangan sendiri:

    openssl genrsa -out knativetop-key.pem 4096
    openssl req -subj "/CN=helloworld.knative.top" -sha256  -new -key knativetop-key.pem -out knativetop.csr
    echo subjectAltName = DNS:helloworld.knative.top > extfile.cnf
    openssl x509 -req -days 3650 -sha256 -in knativetop.csr -signkey knativetop-key.pem -out knativetop-cert.pem -extfile extfile.cnf

    Output yang diharapkan:

    Signature ok
    subject=CN = helloworld.knative.top
    Getting Private key
  2. Gunakan Base64 untuk mengenkripsi file knativetop-key.pem dan knativetop-cert.pem di Langkah 1.

    • Jalankan perintah berikut untuk menggunakan Base64 mengenkripsi file knativetop-key.pem:

      cat knativetop-key.pem | base64

      Output yang diharapkan:

      a25hdGl2ZXRvcC1r******
    • Jalankan perintah berikut untuk menggunakan Base64 mengenkripsi file knativetop-cert.pem:

      cat knativetop-cert.pem | base64

      Output yang diharapkan:

      a25hdGl2ZXRvcC1jZ******==
  3. Jalankan perintah berikut untuk membuat Secret:

    Secret dapat digunakan dalam konfigurasi TLS Layanan Knative untuk mengakses nama domain helloworld.knative.top secara aman.

    kubectl create secret tls secret-tls --key knativetop-key.pem --cert knativetop-cert.pem

    Output yang diharapkan:

    secret/secret-tls created

Langkah 3: Buat DomainMapping

DomainMappings adalah objek sumber daya di Knative. DomainMapping memetakan nama domain ke satu atau beberapa Layanan Knative. Anda dapat membuat DomainMapping untuk memetakan nama domain kustom ke Layanan Knative sehingga aplikasi Anda dapat mengakses Layanan melalui nama domain tersebut.

  1. Jalankan perintah berikut untuk membuat file bernama helloworld.knative.top.yaml:

    vim helloworld.knative.top.yaml
  2. Buka editor vi, tambahkan konten YAML berikut, simpan perubahan, lalu keluar:

    apiVersion: serving.knative.dev/v1beta1
    kind: DomainMapping
    metadata:
      name: helloworld.knative.top
      namespace: default
    spec:
      ref:
        name: helloworld-go
        kind: Service
        apiVersion: serving.knative.dev/v1
    # blok tls menentukan secret yang akan digunakan
      tls:
        secretName: secret-tls
  3. Jalankan perintah berikut untuk menerapkan sumber daya yang didefinisikan di file helloworld.knative.top.yaml ke kluster ACK:

    kubectl apply -f helloworld.knative.top.yaml

    Output yang diharapkan:

    domainmapping.serving.knative.dev/helloworld.knative.top created
  4. Jalankan perintah berikut untuk memverifikasi DomainMapping:

    kubectl get domainmapping helloworld.knative.top

    Output yang diharapkan:

    NAME                          URL                                      READY   REASON
    helloworld.knative.top       https://helloworld.knative.top            True

Langkah 4: Akses Layanan Knative melalui HTTPS

Jalankan perintah berikut untuk mengakses Layanan Knative melalui HTTPS:

ALB

Tambahkan pendengar pada port 443 di AlbConfig. Kode berikut memberikan contoh penambahan pendengar pada port 443 untuk knative-internet:

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: knative-internet
spec:
  config:
  ...
  listeners:
    - port: 443
      protocol: HTTPS # Nilai valid untuk protokol: HTTP, HTTPS, dan QUIC.
  ...

Jalankan perintah berikut untuk melakukan uji akses:

# alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com adalah alamat dari ALB Ingress.
curl -H "host: helloworld.knative.top" https://alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com -k

MSE

# 8.141.XX.XX adalah alamat dari MSE Ingress.
curl -H "host: helloworld-go.default.example.com" https://8.141.XX.XX -k

ASM

# 8.141.XX.XX adalah alamat dari ASM Ingress.
curl -H "host: helloworld-go.default.example.com" http://8.141.XX.XX -k

Output yang diharapkan:

Hello Knative!

Referensi

Anda dapat mengonfigurasi probe untuk memantau status kesehatan dan ketersediaan Layanan Knative. Untuk informasi lebih lanjut, lihat Konfigurasikan Pemindaian Port di Knative.