Topik ini hanya dimaksudkan sebagai contoh. Panduan ini menjelaskan cara mendapatkan sertifikat TLS dari certificate authority (CA) Let's Encrypt. Langkah-langkah ini disediakan terutama sebagai contoh untuk diikuti jika Anda tidak memiliki cara siap pakai lain untuk mendapatkan pasangan sertifikat/kunci yang diotorisasi oleh CA. Contoh ini menunjukkan cara membuat sertifikat menggunakan CA Let's Encrypt, klien Certbot, dan Cloud DNS Google Cloud Platform.
Tempat Anda dapat menggunakan kredensial ini
Anda harus memberikan kredensial TLS untuk dua gateway ingress Istio yang diekspos di luar cluster:
Gateway | Persyaratan TLS |
---|---|
Gateway traffic masuk MART | Memerlukan pasangan kunci/sertifikat TLS yang diotorisasi. |
Gateway traffic masuk runtime | Anda dapat menggunakan sertifikat/pasangan kunci yang ditandatangani sendiri atau kredensial TLS resmi. |
Persyaratan
- Anda memerlukan nama domain yang diperoleh melalui registrar nama domain. Anda dapat mendaftarkan nama domain melalui Google Domains atau registrar domain lain pilihan Anda.
Mengonfigurasi Cloud DNS
Untuk mendapatkan kredensial TLS yang diotorisasi, Anda harus memiliki nama domain yang memenuhi syarat. Langkah-langkah berikut menjelaskan cara menggunakan Google Cloud DNS untuk mendapatkan nama domain dan mengelola server domain Anda.- Buka konsol Google Cloud dan login dengan akun yang Anda buat di Langkah 1: Membuat akun Google Cloud.
- Pilih project yang Anda buat di Langkah 2: Membuat project GCP.
- Aktifkan DNS API. Lihat Mengaktifkan API.
- Buat dua alamat IP statis:
- Jika Anda menggunakan GKE, ikuti petunjuk di
Mereservasi alamat IP eksternal statis untuk membuat dua alamat IP statis. Anda dapat memberi alamat nama apa pun yang Anda inginkan, misalnya:
apigee-hybrid-mart
danapigee-hybrid-runtime
. Setelah selesai, Anda akan memiliki dua nomor IP untuk digunakan dalam konfigurasi cluster pada langkah berikutnya. Misalnya:35.225.131.189
dan34.66.75.196
- Jika Anda menggunakan Anthos GKE, ikuti petunjuk dalam dokumentasi Anthos GKE untuk membuat dua alamat IP statis.
- Jika Anda menggunakan GKE, ikuti petunjuk di
Mereservasi alamat IP eksternal statis untuk membuat dua alamat IP statis. Anda dapat memberi alamat nama apa pun yang Anda inginkan, misalnya:
- Membuat zona publik terkelola. Untuk mengetahui petunjuknya, lihat Membuat zona publik terkelola.
- Dapatkan IP Eksternal yang Anda cadangkan untuk
apigee-hybrid-mart
. - Buat set data untuk endpoint MART. Masukkan IP Eksternal yang Anda dapatkan di langkah sebelumnya dan tambahkan awalan ke nama domain, seperti
mart
. Untuk mengetahui petunjuknya, lihat Membuat data baru. - Dapatkan IP Eksternal yang Anda cadangkan untuk
apigee-hybrid-runtime
. - Buat kumpulan data untuk endpoint ingress Istio. Ini adalah alamat untuk melakukan panggilan API ke gateway campuran. Masukkan IP Eksternal yang Anda dapatkan di langkah sebelumnya dan tambahkan awalan ke nama domain, seperti
apitest
. Untuk mengetahui petunjuknya, lihat Membuat data baru. - Salin data data DNS, seperti yang ditunjukkan dalam contoh berikut:
- Kembali ke halaman domain Anda di Google Domains.
- Pilih domain Anda.
- Pilih DNS.
- Di bagian Server Nama, klik Edit.
Masukkan server nama domain yang Anda salin dari halaman Cloud DNS Layanan Jaringan:
Sekarang, Google Cloud DNS akan mengelola data DNS untuk domain Anda.
Menginstal Certbot di VM
Setelah menyiapkan Cloud DNS untuk mengelola server domain, Anda akan menginstal klien Certbot dengan plugin dns_google di Cloud VM. Klien ini memungkinkan Anda mendapatkan sertifikat resmi untuk domain dari endpoint Let's Encrypt.
- Buka konsol Google Cloud dan login dengan akun yang Anda buat di Langkah 1: Membuat akun Google Cloud.
- Pilih project yang Anda buat di Langkah 2: Membuat project GCP.
- Pilih IAM & admin > Service accounts.
Tampilan Akun layanan menampilkan daftar akun layanan project.
- Untuk membuat akun layanan baru, klik +Create Service Account di bagian atas tampilan.
Tampilan Detail akun layanan akan ditampilkan.
- Di kolom Nama akun layanan, masukkan nama akun layanan.
Anda dapat menambahkan deskripsi secara opsional di kolom Deskripsi akun layanan. Deskripsi membantu mengingatkan Anda tentang tujuan penggunaan akun layanan tertentu.
- Klik Create.
GCP akan membuat akun layanan baru dan menampilkan tampilan Izin akun layanan. Gunakan tampilan ini untuk menetapkan peran ke akun layanan baru Anda.
- Klik menu drop-down Select a role.
- Pilih peran Project Owner.
- Klik Lanjutkan.
- Klik Done.
- Di konsol GCP, pilih Compute Engine > VM Instances.
- Buat instance VM bernama certmanager.
- Di bagian Boot Disk, pilih CentOS7 dan 20 GB untuk drive persisten SSD.
- Tetapkan Akun Layanan ke akun yang Anda buat di atas.
- Instal Certbot dan plugin dns_google di mesin, lalu jalankan klien Certbot:
sudo su -
yum -y install yum-utils
yum install certbot -y
yum install certbot-dns-google -y
certbot certonly --dns-google -d *.your_domain_name,*.your_domain_name --server https://acme-v02.api.letsencrypt.org/directory
Contoh:
sudo su -
yum -y install yum-utils
yum install certbot -y
yum install certbot-dns-google -y
certbot certonly --dns-google -d *.apigee-hybrid-docs.net,*.apigee-hybrid-docs.net --server https://acme-v02.api.letsencrypt.org/directory
- Anda kini dapat menemukan file sertifikat dan kunci pribadi yang diotorisasi di direktori ini:
cd /etc/letsencrypt/live/your_domain_name/
Contoh:
cd /etc/letsencrypt/live/apigee-hybrid-docs.net
ls
cert.pem chain.pem fullchain.pem privkey.pem README - Salin file
fullchain.pem
danprivkey.pem
ke komputer lokal Anda. - Perbarui file penggantian Anda agar mengarah ke sertifikat dan kunci pribadi. Untuk
hostAlias
, gunakan nama DNS yang Anda buat sebelumnya.Contoh:
envs: - name: test sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem" sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem" hostAlias: "apitest.apigee-hybrid-docs.net" mart: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem" sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem" replicaCountMin: 1 replicaCountMax: 1 hostAlias: "mart.apigee-hybrid-docs.net"
- Terapkan perubahan:
Jika Anda mengubah konfigurasi
mart
, terapkan perubahan tersebut:apigeectl apply -f your_overrides_file -c mart
Jika Anda mengubah konfigurasi
envs
, terapkan perubahan tersebut:apigeectl apply -f your_overrides_file -c runtime
Menguji konfigurasi
Deploy dan uji proxy, seperti yang dijelaskan dalam Membuat dan men-deploy proxy API baru.