Meminta sertifikat menggunakan CA Publik dan klien ACME

Tutorial ini akan memandu Anda untuk meminta sertifikat TLS dengan Public Certificate Authority menggunakan Google Cloud CLI. Untuk mengetahui informasi tentang CA root dan intermediate yang digunakan oleh Public Certificate Authority, lihat Layanan Kepercayaan Google. Permintaan sertifikat dari CA Publik tidak dikenai biaya.

Sebelum memulai

  • Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

    gcloud init

  • Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  • Pastikan Anda memiliki peran IAM Pemilik (roles/owner) atau Public CA External Account Key Creator (publicca.externalAccountKeyCreator).

    Untuk memberikan peran IAM Public CA External Account Key Creator (publicca.externalAccountKeyCreator), jalankan perintah berikut:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:USER \
      --role=roles/publicca.externalAccountKeyCreator
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • USER: ID unik pengguna yang ingin Anda tetapkan peran IAM

    Untuk mengetahui informasi tentang cara memberikan peran IAM, lihat Mengelola akses ke project, folder, dan organisasi.

  • Enable the Public CA API:

    gcloud services enable publicca.googleapis.com

Menginstal klien

Untuk mulai menggunakan CA Publik, Anda harus menginstal klien ACME. Petunjuk berikut menggunakan Certbot sebagai klien ACME. Anda dapat menggunakan klien ACME lainnya jika klien tersebut mendukung binding akun eksternal (EAB).

Untuk menginstal Certbot, lihat Petunjuk Certbot.

Pastikan untuk mengarahkan klien Anda ke server CA Publik. Saat pertama kali klien ACME berinteraksi dengan CA Publik, klien menghasilkan pasangan kunci baru dan mengirim kunci publik ke CA Publik.

Meminta ID kunci EAB dan HMAC

Setelah menginstal klien ACME, Anda harus mendaftarkan akun ACME Anda dengan CA Publik untuk meminta sertifikat dari CA Publik. Rahasia EAB dapat membantu Anda mendaftarkan akun ACME Anda dengan CA Publik. Rahasia EAB terdiri dari ID kunci dan kode autentikasi pesan (HMAC) berbasis hash.

Anda dapat menggunakan Public CA API atau Google Cloud CLI untuk meminta secret EAB.

Untuk meminta ID kunci EAB dan HMAC, jalankan perintah berikut:

gcloud publicca external-account-keys create

Perintah ini akan menampilkan rahasia EAB yang valid di lingkungan produksi Public CA. Dalam isi respons, kolom keyId berisi ID kunci EAB, dan kolom b64MacKey berisi HMAC EAB.

Anda harus menggunakan rahasia EAB dalam waktu 7 hari setelah mendapatkannya. Rahasia EAB menjadi tidak valid jika Anda tidak menggunakannya dalam waktu 7 hari. Akun ACME yang didaftarkan menggunakan rahasia EAB tidak memiliki tanggal habis masa berlaku.

Daftarkan akun ACME

Bagian ini menjelaskan cara mendaftarkan akun ACME dengan CA Publik dengan memberikan rahasia EAB yang baru saja Anda peroleh.

Gunakan klien ACME reguler untuk mendaftarkan akun ACME, serta berikan ID kunci EAB dan HMAC saat mendaftar.

Untuk mendaftarkan akun ACME dengan CA Publik dan mengikat akun ACME ke project Google Cloud yang Anda gunakan untuk meminta secret EAB, jalankan perintah berikut:

certbot register \
    --email "EMAIL_ADDRESS" \
    --no-eff-email \
    --server "SERVER" \
    --eab-kid "EAB_KID" \
    --eab-hmac-key "EAB_HMAC_KEY"

Ganti kode berikut:

  • EMAIL_ADDRESS: alamat email Anda
  • SERVER: URL direktori ACME untuk lingkungan produksi atau staging
  • EAB_KID: ID kunci EAB
  • EAB_HMAC_KEY: kunci HMAC EAB

Tabel berikut berisi deskripsi dan URL direktori ACME untuk lingkungan produksi dan staging:

Lingkungan Deskripsi URL direktori ACME
Lingkungan produksi memungkinkan Anda mendapatkan sertifikat tepercaya secara publik. https://dv.acme-v02.api.pki.goog/directory
Staging Lingkungan staging menampilkan sertifikat yang tidak dipercaya secara publik. Lingkungan staging melakukan pemeriksaan validasi yang sama dengan lingkungan produksi. Anda dapat menggunakan lingkungan staging untuk integrasi atau jenis pengujian lainnya. https://dv.acme-v02.test-api.pki.goog/directory

Anda hanya dapat mendaftarkan satu akun ACME dengan rahasia EAB. Setelah Anda mendaftarkan akun ACME menggunakan rahasia EAB, rahasia EAB akan menjadi tidak valid dan Anda tidak dapat menggunakannya kembali. Jika ingin mendaftarkan beberapa akun ACME, Anda harus meminta rahasia EAB yang unik untuk setiap akun.

Minta sertifikat

Setelah Public CA memvalidasi kontrol Anda atas target sertifikat dan mengonfirmasi bahwa klien ACME Anda berfungsi seperti yang diharapkan untuk menjalankan operasi pengelolaan sertifikat, Anda dapat menggunakan alur kerja ACME reguler untuk meminta, memperpanjang, dan mencabut sertifikat. Anda dapat melakukan operasi ini menggunakan klien ACME Anda. Untuk meminta dan memperpanjang sertifikat, Anda harus menyelesaikan tantangan ACME, seperti tantangan DNS manual.

Untuk menggunakan tantangan DNS manual guna meminta sertifikat, jalankan perintah berikut:

certbot certonly \
    --manual \
    --preferred-challenges "dns-01" \
    --server "SERVER" \
    --domains "DOMAINS"

Ganti kode berikut:

  • SERVER: URL direktori ACME untuk lingkungan produksi atau staging
  • DOMAINS: daftar yang dipisahkan koma untuk domain yang sertifikatnya Anda minta

Pembersihan

Jika tidak lagi memerlukan sertifikat untuk domain, hapus project yang Anda buat.

Staging

Anda dapat menggunakan lingkungan staging CA Publik untuk meminta sertifikat untuk tujuan pengujian. Sertifikat yang dikeluarkan oleh lingkungan staging berantai ke root CA pengujian. Sertifikat dari lingkungan staging tidak akan dipercaya oleh Browser atau klien lain yang belum dikonfigurasi untuk memercayai root certificate staging. Untuk mendapatkan rahasia EAB yang valid di lingkungan staging, ganti endpoint API untuk menggunakan endpoint untuk lingkungan staging:

gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
Kemudian, jalankan perintah pembuatan kunci akun untuk membuat kunci staging:
gcloud publicca external-account-keys create
Untuk kembali ke endpoint lingkungan produksi, jalankan perintah berikut:
gcloud config unset api_endpoint_overrides/publicca

Menghapus project Google Cloud:

gcloud projects delete PROJECT_ID

Langkah selanjutnya