Topik ini hanya dimaksudkan sebagai contoh. Dokumen ini menjelaskan cara mendapatkan sertifikat TLS dari otoritas sertifikat (CA) Let's Encrypt. Langkah-langkah ini diberikan terutama sebagai contoh untuk diikuti jika Anda tidak memiliki cara lain untuk mendapatkan sertifikat/kunci yang diizinkan oleh CA. Contoh ini menunjukkan cara membuat sertifikat menggunakan CA Let's Encrypt, Klien Certbot, dan DNS Cloud Google Cloud Platform.
Tempat Anda dapat menggunakan kredensial ini
Anda harus memberikan kredensial TLS untuk dua gateway masuk Istio yang terekspos di luar cluster:
Gateway | Persyaratan TLS |
---|---|
Gateway masuk MART | Memerlukan pasangan sertifikat/kunci TLS yang diotorisasi. |
Gateway masuk runtime | Anda dapat menggunakan pasangan sertifikat/kunci yang ditandatangani sendiri atau kredensial TLS resmi. |
Persyaratan
Anda akan memerlukan nama domain yang diperoleh melalui pendaftar nama domain. Anda dapat mendaftarkan nama domain melalui Google Domains atau registrar domain lainnya pilihan Anda.
Mengonfigurasi Cloud DNS
Untuk mendapatkan kredensial TLS resmi, Anda harus memiliki nama domain yang memenuhi syarat. Hal berikut langkah yang 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: Buat akun Google Cloud.
- Pilih project yang Anda buat di Langkah 2: Buat project GCP.
- Aktifkan Cloud DNS API. Lihat Mengaktifkan API.
- Buat dua alamat IP statis:
- Jika Anda menggunakan GKE, ikuti petunjuk di
Melakukan reservasi alamat IP eksternal statis untuk membuat
dua alamat IP statis. Anda dapat memberikan nama apa pun pada alamat sesuai keinginan, misalnya:
apigee-hybrid-mart
danapigee-hybrid-runtime
. Setelah selesai, Anda akan memiliki dua nomor IP untuk digunakan dalam konfigurasi cluster pada langkah berikutnya. Contoh:35.225.131.189
dan34.66.75.196
- Jika Anda menggunakan Anthos GKE, ikuti petunjuk di dokumentasi Anthos GKE untuk membuat dua alamat IP statis.
- Jika Anda menggunakan GKE, ikuti petunjuk di
Melakukan reservasi alamat IP eksternal statis untuk membuat
dua alamat IP statis. Anda dapat memberikan nama apa pun pada alamat sesuai keinginan, misalnya:
- Membuat zona publik terkelola. Untuk petunjuk, lihat Membuat zona publik terkelola.
- Dapatkan IP Eksternal yang Anda cadangkan untuk
apigee-hybrid-mart
. - Buat kumpulan data untuk endpoint MART. Masukkan IP Eksternal yang Anda peroleh di langkah sebelumnya
dan tambahkan awalan ke nama domain, seperti
mart
. Untuk mengetahui petunjuknya, lihat Buat data baru. - Dapatkan IP Eksternal yang Anda cadangkan untuk
apigee-hybrid-runtime
. - Membuat kumpulan data untuk endpoint masuk Istio. Ini adalah alamat untuk membuat API
panggilan ke gateway hybrid. Masukkan IP Eksternal yang Anda peroleh di langkah sebelumnya
dan tambahkan awalan ke nama domain, seperti
apitest
. Untuk mengetahui petunjuknya, lihat Buat data baru. - Salin data data DNS, seperti yang ditunjukkan pada 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 Cloud DNS Layanan Jaringan halaman:
Sekarang, DNS Google Cloud Anda akan mengelola data DNS untuk domain Anda.
Menginstal Certbot di VM
Sekarang setelah Cloud DNS disiapkan untuk mengelola server domain, Anda akan menginstal klien Certbot dengan dns_google di VM Cloud. Klien memungkinkan Anda untuk mendapatkan sertifikat resmi untuk domain Anda dari endpoint Let's Encrypt.
- Buka Konsol Google Cloud dan login dengan akun yang Anda buat di Langkah 1: Buat akun Google Cloud.
- Pilih project yang Anda buat di Langkah 2: Buat project GCP.
- Pilih IAM & admin > Akun layanan.
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 di Deskripsi akun layanan (opsional) kolom tersebut. Deskripsi sangat membantu untuk mengingatkan Anda tentang akun layanan tertentu yang digunakan untuk mereka.
- Klik Create.
GCP membuat akun layanan baru dan menampilkan Akun layanan izin akses. Gunakan tampilan ini untuk menetapkan peran ke akun layanan yang baru.
- Klik menu drop-down Select a role.
- Pilih peran Project Owner.
- Klik Lanjutkan.
- Klik Done.
- Di konsol GCP, pilih Compute Engine > Instance VM.
- Buat instance VM dengan nama certmanager.
- Di bawah bagian Boot Disk, pilih CentOS7 and 20 GB untuk persistent drive SSD.
- Setel Akun Layanan ke akun yang Anda buat di atas.
- Instal Certbot dan dns_google
plugin pada komputer dan 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
- Sekarang Anda dapat menemukan sertifikat yang diotorisasi dan file kunci pribadi dalam 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. - Perbarui file penggantian agar mengarah ke sertifikat dan kunci pribadi. Untuk
hostAliases
, gunakan nama DNS yang telah Anda buat sebelumnya.Contoh:
... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json virtualhosts: - name: default hostAliases: ["apitest.apigee-hybrid-docs.net"] sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem" sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem" routingRules: - env: test 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.