Service Mesh (ASM) memungkinkan Anda mengikat sertifikat ke nama domain secara visual. Setelah sertifikat diikat ke nama domain, Anda dapat menggunakan gateway masuk untuk mengakses nama domain melalui protokol seperti HTTPS, meningkatkan keamanan gateway masuk. Topik ini menjelaskan cara mengikat sertifikat ke nama domain.
Prasyarat
Sebuah instance ASM Edisi Enterprise atau Edisi Ultimate telah dibuat. Sebuah aplikasi telah diterapkan di kluster Container Service for Kubernetes (ACK) yang ditambahkan ke instance ASM. Untuk informasi lebih lanjut, lihat Menyebarkan Aplikasi di Kluster ACK yang Ditambahkan ke Instance ASM.
Sebuah gateway masuk telah diterapkan. Untuk informasi lebih lanjut, lihat Buat Gateway Masuk.
Injeksi proxy sidecar telah diaktifkan untuk namespace layanan yang ingin Anda akses. Untuk informasi lebih lanjut, lihat Konfigurasikan Kebijakan Injeksi Proxy Sidecar.
Alamat IP gateway masuk telah diperoleh. Untuk informasi lebih lanjut, lihat Langkah 2: Dapatkan Alamat IP Gateway Masuk ASM.
Informasi latar belakang
Dalam contoh ini, layanan myexampleapp dengan nama domain aliyun.com digunakan. Setelah Anda mengikat sertifikat ke nama domain aliyun.com, Anda dapat menggunakan gateway masuk untuk mengakses layanan myexampleapp melalui HTTPS.
Prosedur
Buat layanan contoh bernama myexampleapp.
Buat file myexample-nginx.conf yang berisi konten berikut:
Dalam contoh ini, layanan myexampleapp dengan nama domain aliyun.com diimplementasikan menggunakan NGINX. Anda perlu membuat file konfigurasi untuk server NGINX. Blok kode berikut menentukan bahwa pesan
Selamat datang di aliyun.com!dan kode status200akan dikembalikan untuk permintaan ke jalur root layanan:events { } http { log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log; server { listen 80; location / { return 200 'Selamat datang di aliyun.com!'; add_header Content-Type text/plain; } } }Jalankan perintah berikut untuk membuat ConfigMap untuk server NGINX:
kubectl create configmap myexample-nginx-configmap --from-file=nginx.conf=./myexample-nginx.confBuat file myexampleapp.yaml yang berisi konten berikut:
Jalankan perintah berikut untuk membuat layanan myexampleapp dengan nama domain aliyun.com:
kubectl apply -f myexampleapp.yaml
Impor layanan myexampleapp ke gateway masuk.
Masuk ke Konsol ASM. Di bilah navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di bilah navigasi sebelah kiri, pilih .
Di halaman Ingress Gateway, klik nama gateway masuk yang diinginkan.
Di bilah navigasi sebelah kiri halaman Gateway overview, klik Upstream Service.
Di halaman Gateway upstream services, klik Import service.
Di halaman Import service, pilih namespace layanan myexampleapp dari daftar drop-down Namespace. Di kotak pilih layanan, pilih layanan myexampleapp dan klik ikon
untuk memindahkan layanan ke kotak terpilih. Lalu, klik Submit.
Buat sertifikat dan kunci privat untuk server aliyun.com.
Jalankan perintah openssl berikut untuk membuat sertifikat root dan kunci privat:
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=myexample Inc./CN=aliyun.com' -keyout aliyun.root.key -out aliyun.root.crtJalankan perintah berikut untuk membuat sertifikat dan kunci privat untuk server aliyun.com.
Jalankan perintah berikut untuk membuat sertifikat aliyun.com.crt:
openssl x509 -req -days 365 -CA aliyun.root.crt -CAkey aliyun.root.key -set_serial 0 -in aliyun.com.csr -out aliyun.com.crtJalankan perintah berikut untuk membuat kunci privat aliyun.com.key:
openssl req -out aliyun.com.csr -newkey rsa:2048 -nodes -keyout aliyun.com.key -subj "/CN=aliyun.com/O=myexample organization"
Pasang sertifikat dan kunci privat dalam volume dan tambahkan volume tersebut ke gateway masuk.
CatatanUntuk instance ASM versi 1.17 atau lebih baru, Anda dapat menggunakan sertifikat yang ditambahkan ke halaman Certificate Management. Kami sarankan Anda memigrasikan sertifikat ke Certificate Management sesegera mungkin. Untuk memigrasi sertifikat, Anda dapat membuat sertifikat baru dengan nama yang sama dengan sertifikat yang ada di halaman Certificate Management. Kemudian, sertifikat yang ada akan ditimpa dan Anda tidak perlu menghapusnya. Untuk informasi lebih lanjut tentang cara memperbarui instance ASM, lihat Perbarui Instance ASM.
Untuk sertifikat yang ditambahkan ke halaman Certificate Management, sistem secara otomatis menghasilkan rahasia dengan nama yang sama dengan sertifikat pada bidang data. Jika rahasia dengan nama yang sama sudah ada, konten baru rahasia akan menimpa konten aslinya.
Instance ASM dengan versi lebih lama dari 1.17
Masuk ke Konsol ASM. Di bilah navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di bilah navigasi sebelah kiri, pilih .
Di halaman Ingress Gateway, klik nama gateway yang ingin Anda konfigurasi. Di bilah navigasi sebelah kiri halaman Gateway overview, klik Domain/Certificate.
Di halaman yang muncul, klik tab Certificate dan klik Create.
Di halaman New Certificate, masukkan nama sertifikat di bidang Name, salin konten sertifikat
aliyun.com.crtke kotak Certificate, salin konten kunci privataliyun.com.keyke kotak key, lalu klik Create.
Instance ASM versi 1.17 atau lebih baru
Masuk ke Konsol ASM. Di bilah navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di bilah navigasi sebelah kiri, pilih .
Di halaman Certificate Management, klik Create. Di panel Certificate Information, konfigurasikan parameter yang diperlukan dan klik OK.
Parameter
Deskripsi
Name
Masukkan nama sertifikat. Untuk contoh ini, masukkan myexample-credential.
Public Key Certificate
Masukkan konten sertifikat
aliyun.com.crtyang dihasilkan di Langkah 3.Private Key
Masukkan konten kunci privat
aliyun.com.keyyang dihasilkan di Langkah 3.
Ikatkan sertifikat ke nama domain.
Masuk ke Konsol ASM. Di bilah navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di bilah navigasi sebelah kiri, pilih .
Di halaman Ingress Gateway, klik nama gateway yang ingin Anda konfigurasi. Di bilah navigasi sebelah kiri halaman Gateway overview, klik Domain/Certificate.
Di halaman yang muncul, klik tab Domain dan klik Create.
Di halaman Add domain, atur parameter Domain Name menjadi *.aliyun.com dan parameter Protocol menjadi HTTPS, serta masukkan nama port dan nomor port berdasarkan kebutuhan bisnis Anda. Selain itu, pilih sertifikat yang Anda impor ke gateway masuk, pilih Secure connections with standard TLS semantics, lalu klik Create.
CatatanJika Anda memilih Secure connections with standard TLS semantics, hanya permintaan TLS yang dapat mengakses nama domain.
Jalankan perintah berikut untuk mengakses nama domain aliyun.com melalui HTTPS untuk memeriksa apakah nama domain dan sertifikat telah diikat:
curl -k -H Host:www.aliyun.com --resolve www.aliyun.com:443:{IP address of the ingress gateway} https://www.aliyun.comKeluaran yang diharapkan:
Selamat datang di aliyun.com!Nama domain aliyun.com dapat diakses melalui HTTPS. Ini menunjukkan bahwa sertifikat telah diikat ke nama domain.