Mendapatkan kredensial TLS: Contoh

Topik ini hanya dimaksudkan sebagai contoh. Panduan ini menjelaskan cara mendapatkan sertifikat TLS dari certificate authority (CA) Let's Encrypt. Langkah-langkah ini diberikan terutama sebagai contoh yang harus diikuti jika Anda tidak memiliki cara lain yang siap 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 terekspos di luar cluster:

Gateway Persyaratan TLS
Gateway masuk MART Memerlukan pasangan kunci/sertifikat TLS resmi.
Gateway masuk runtime Anda dapat menggunakan pasangan kunci/sertifikat yang ditandatangani sendiri atau kredensial TLS yang diotorisasi.
Lihat juga Koneksi eksternal.

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 resmi, Anda harus memiliki nama domain yang memenuhi syarat. Langkah berikut menjelaskan cara menggunakan Google Cloud DNS untuk mendapatkan nama domain dan mengelola server domain Anda.
  1. Buka Konsol Google Cloud dan login dengan akun yang Anda buat di Langkah 1: Buat akun Google Cloud.
  2. Pilih project yang Anda buat di Langkah 2: Buat project GCP.
  3. Aktifkan Cloud DNS API. Lihat Mengaktifkan API.
  4. Buat dua alamat IP statis:
    • Jika Anda menggunakan GKE, ikuti petunjuk dalam artikel Mencadangkan alamat IP eksternal statis untuk membuat dua alamat IP statis. Anda dapat memberi alamat nama apa pun yang diinginkan, misalnya: apigee-hybrid-mart dan apigee-hybrid-runtime. Setelah selesai, Anda akan memiliki dua nomor IP untuk digunakan dalam konfigurasi cluster di langkah berikutnya. Contoh: 35.225.131.189 dan 34.66.75.196
    • Jika Anda menggunakan Anthos GKE, ikuti petunjuk di dokumentasi Anthos GKE untuk membuat dua alamat IP statis.
  5. Membuat zona publik terkelola. Untuk mengetahui petunjuknya, lihat Membuat zona publik terkelola.
  6. Dapatkan IP Eksternal yang Anda cadangkan untuk apigee-hybrid-mart.
  7. Membuat kumpulan data untuk endpoint MART. Masukkan IP Eksternal yang Anda peroleh di langkah sebelumnya, lalu tambahkan awalan ke nama domain, seperti mart. Untuk mengetahui petunjuknya, lihat Membuat data baru.

  8. Dapatkan IP Eksternal yang Anda cadangkan untuk apigee-hybrid-runtime.
  9. Membuat kumpulan data untuk endpoint masuk Istio. Ini adalah alamat untuk melakukan panggilan API ke gateway hybrid. Masukkan IP Eksternal yang Anda peroleh di langkah sebelumnya, lalu tambahkan awalan ke nama domain, seperti apitest. Untuk mengetahui petunjuknya, lihat Membuat data baru.

  10. Salin data data DNS, seperti yang ditunjukkan pada contoh berikut:

  11. Kembali ke halaman domain Anda di Google Domains.
  12. Pilih domain Anda.
  13. Pilih DNS.
  14. Di bagian Name Servers, klik Edit.
  15. Masukkan server nama domain yang Anda salin dari halaman Cloud DNS Layanan Jaringan:

Sekarang, DNS Google Cloud 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 memungkinkan Anda mendapatkan sertifikat yang diotorisasi untuk domain Anda dari endpoint Let's Encrypt.

  1. Buka Konsol Google Cloud dan login dengan akun yang Anda buat di Langkah 1: Buat akun Google Cloud.
  2. Pilih project yang Anda buat di Langkah 2: Buat project GCP.
  3. Pilih IAM & admin > Service accounts.

    Tampilan akun layanan menampilkan daftar akun layanan project.

  4. Untuk membuat akun layanan baru, klik +Create Service Account di bagian atas tampilan.

    Tampilan Detail akun layanan akan ditampilkan.

  5. Di kolom Nama akun layanan, masukkan nama akun layanan.

    Jika ingin, Anda dapat menambahkan deskripsi di kolom Service account description. Deskripsi berguna mengingatkan Anda untuk apa akun layanan tertentu digunakan.

  6. Klik Create.

    GCP membuat akun layanan baru dan menampilkan tampilan Izin akun layanan. Gunakan tampilan ini untuk menetapkan peran ke akun layanan baru Anda.

  7. Klik menu drop-down Select a role.
  8. Pilih peran Project Owner.
  9. Klik Lanjutkan.
  10. Klik Done.
  11. Di GCP Console, pilih Compute Engine > Instance VM.
  12. Buat instance VM bernama certmanager.
  13. Di bagian Boot Disk, pilih CentOS7 dan 20 GB untuk persistent drive SSD.
  14. Tetapkan Akun Layanan ke akun yang Anda buat di atas.
  15. Instal Certbot dan plugin dns_google di komputer, 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
    
  16. Anda kini dapat menemukan file sertifikat resmi dan 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

  17. Salin file fullchain.pem dan privkey.pem ke komputer lokal Anda.
  18. Perbarui file penggantian agar mengarah ke sertifikat dan kunci pribadi. Untuk hostAliases, gunakan nama DNS yang 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"
  19. 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
  20. Menguji konfigurasi

    Deploy dan uji proxy, seperti yang dijelaskan dalam Membuat dan men-deploy proxy API baru.