Certificate Management Service (Original SSL Certificate) adalah platform Alibaba Cloud untuk penerbitan dan manajemen sertifikat. Anda dapat menerapkan sertifikat langsung ke kluster bidang data dari konsol Layanan Manajemen Sertifikat, lalu menggunakannya pada gerbang ASM. Topik ini menjelaskan cara menggunakan sertifikat SSL dari Layanan Manajemen Sertifikat di gerbang ASM.
Prasyarat
Anda telah membeli atau mengunggah sertifikat SSL yang tersedia di konsol Layanan Manajemen Sertifikat.
Anda telah menerapkan aplikasi httpbin.
Langkah 1: Memberikan izin kepada Layanan Manajemen Sertifikat
Layanan Manajemen Sertifikat menggunakan peran AliyunCASDefaultRole untuk mengakses dan mengelola kluster ACK. Anda harus memberikan izin kepada peran ini.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Authorizations.
Klik tab RAM Roles, masukkan
AliyunCASDefaultRoledi kotak pencarian, lalu klik Manage Permissions.Jika muncul pesan AliyunCASDefaultRole Does Not Exist, Anda harus terlebih dahulu membuat peran RAM untuk Layanan Manajemen Sertifikat dan memberikan izin kepada peran tersebut.
Pada kotak dialog Permission Management, klik + Add Permissions. Pada kolom Cluster, pilih nama kluster yang ingin Anda kelola dari daftar tarik-turun. Pada kolom Namespace, pilih
istio-systemdari daftar tarik-turun. Pada kolom Permission Management, pilih Restricted User.Klik Submit Authorization.
Langkah 2: Menerapkan sertifikat ke kluster ACK
Nama domain sertifikat yang digunakan dalam topik ini adalah test.com. Anda dapat mengubah nama domain sesuai kebutuhan.
Terapkan sertifikat.
Jika ini pertama kalinya Anda menggunakan layanan penerapan, berikan izin yang diperlukan seperti yang diminta pada halaman tersebut. Setelah otorisasi, Anda dapat membuat tugas penerapan. Untuk informasi lebih lanjut tentang otorisasi, lihat Memberikan izin untuk mengakses sumber daya cloud.
Masuk ke Konsol Layanan Sertifikat.
Di panel navigasi sebelah kiri, pilih .
Pada halaman SSL Certificate Management, klik tab jenis sertifikat Anda. Di daftar sertifikat, temukan sertifikat tersebut dan klik Deploy di kolom Actions.
Sertifikat yang diterbitkan oleh Private CA disinkronkan ke tab Uploaded Certificate. Anda dapat mengelolanya di tab tersebut.
Pada langkah Select Resource di halaman Create Task, pilih atau sesuaikan layanan cloud dan sumber dayanya. Anda dapat memilih satu atau beberapa layanan cloud beserta sumber daya yang sesuai. Lalu, klik Preview and Submit.
Sistem secara otomatis mencocokkan sertifikat SSL yang dipilih dengan sumber daya layanan cloud yang sudah memiliki konfigurasi sertifikat SSL. Di kotak dialog yang muncul, klik OK. Sistem akan menambahkan sumber daya yang cocok ke bagian Selected Resources. Anda kemudian dapat menyesuaikan sumber daya yang dipilih sesuai kebutuhan.

Sistem secara otomatis mendeteksi dan menarik semua sumber daya layanan cloud Anda. Jika Anda tidak menemukan sumber daya tujuan di layanan cloud yang sesuai, periksa hal-hal berikut:
Di bagian Total Resources, periksa apakah sumber daya telah disinkronkan. Jika sumber daya sedang dalam proses sinkronisasi (statusnya tampak pudar seperti pada gambar), tunggu hingga sinkronisasi selesai. Waktu yang dibutuhkan untuk sinkronisasi bergantung pada jumlah sumber daya di layanan cloud Anda.

Jika Anda masih tidak menemukan sumber daya setelah sinkronisasi selesai, periksa apakah prasyarat untuk penerapan sertifikat telah terpenuhi.
Di panel Task Preview, konfirmasi informasi mengenai instans sertifikat dan sumber daya layanan cloud. Jika semuanya benar, klik Submit.
Halaman pratinjau menampilkan jumlah sertifikat yang cocok untuk layanan cloud dan jumlah kuota penerapan yang akan digunakan. Jika jumlah sertifikat yang cocok adalah 0, artinya sertifikat yang dipilih tidak sesuai dengan sumber daya layanan cloud, sehingga penerapan akan gagal. Dalam kasus ini, periksa kembali sertifikat yang dipilih.
Dapatkan informasi Secret.
kubectl -n istio-system get secret -l alibabacloud.com/ssl-certificate-identifier=${CertIdentifier of the SSL certificate}Output yang diharapkan:
NAME TYPE DATA AGE cas-cert-305xxx76 kubernetes.io/tls 2 10m
Langkah 3: Perbarui aturan gateway
Perbarui aturan gateway yang dibuat saat Anda menerapkan aplikasi httpbin. Tambahkan host dan Secret yang dibuat pada langkah sebelumnya.
kubectl apply -f - <<EOF
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:
- 'test.com'
port:
name: https
number: 443
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: ${Name of the Secret obtained in the previous step}
EOFLangkah 4: Uji akses
Dapatkan alamat IP gateway.
export GATEWAY_IP=$(kubectl get service istio-ingressgateway -n istio-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}' )Kirim permintaan uji coba.
curl -vk --resolve test.com:443:${GATEWAY_IP} https://test.com/status/418Output yang diharapkan:
* Added test.com:443:47.xx.xxx.146 to DNS cache * Hostname test.com was found in DNS cache * Trying 47.xx.xxx.146... * TCP_NODELAY set * Connected to test.com (47.xx.xxx.146) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none ... * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 * ALPN, server accepted to use h2 * Server certificate: * subject: CN=test.com; O=myexample organization * start date: Jul 28 09:19:32 2025 GMT * expire date: Jul 28 09:19:32 2026 GMT * issuer: O=myexample Inc.; CN=test.com * SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway. * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 ... > GET /status/418 HTTP/2 > Host: test.com > User-Agent: curl/7.61.1 > Accept: */* > ... < HTTP/2 418 < server: istio-envoy < date: Tue, 29 Jul 2025 08:45:10 GMT < x-more-info: http://tools.ietf.org/html/rfc2324 < access-control-allow-origin: * < access-control-allow-credentials: true < content-length: 135 < x-envoy-upstream-service-time: 5 < -=[ teapot ]=- _...._ .' _ _ `. | ."` ^ `". _, \_;`"---"`|// | ;/ \_ _/ `"""` * Connection #0 to host test.com left intactTanggapan mencakup informasi terkait TLS dan tanggapan 418.