Meminta sertifikat menggunakan Public CA dan klien ACME

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

Sebelum memulai

  • Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  • Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  • Pastikan Anda memiliki peran IAM Pemilik (roles/owner) atau Pembuat Kunci Akun Eksternal CA Publik (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 beri 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 lain 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 akan membuat pasangan kunci baru dan mengirim kunci publik ke CA Publik.

Meminta ID kunci dan HMAC EAB

Setelah menginstal klien ACME, Anda harus mendaftarkan akun ACME dengan CA Publik untuk meminta sertifikat dari CA Publik. Rahasia EAB dapat membantu Anda mendaftarkan akun ACME ke CA Publik. Secret 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 dan HMAC EAB, jalankan perintah berikut:

gcloud publicca external-account-keys create

Perintah ini menampilkan secret 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 secret EAB dalam waktu 7 hari setelah mendapatkannya. Secret EAB akan dibatalkan jika Anda tidak menggunakannya dalam waktu 7 hari. Akun ACME yang terdaftar menggunakan secret EAB tidak memiliki masa berlaku.

Mendaftarkan akun ACME

Bagian ini menjelaskan cara mendaftarkan akun ACME ke CA Publik dengan memberikan secret EAB yang baru saja Anda dapatkan.

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

Untuk mendaftarkan akun ACME ke 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 memberikan deskripsi dan URL direktori ACME untuk lingkungan produksi dan staging:

Lingkungan Deskripsi URL direktori ACME
Produksi Lingkungan produksi memungkinkan Anda mendapatkan sertifikat tepercaya secara publik. https://dv.acme-v02.api.pki.goog/directory
Staging Lingkungan staging menampilkan sertifikat yang tidak tepercaya 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 secret EAB. Setelah Anda mendaftarkan akun ACME menggunakan secret EAB, secret EAB menjadi tidak valid dan Anda tidak dapat menggunakannya kembali. Jika ingin mendaftarkan beberapa akun ACME, Anda harus meminta secret EAB unik untuk setiap akun.

Meminta sertifikat

Setelah CA Publik memvalidasi kontrol Anda atas target sertifikat dan mengonfirmasi bahwa klien ACME Anda berfungsi seperti yang diharapkan untuk melakukan operasi pengelolaan sertifikat, Anda dapat menggunakan alur kerja ACME reguler untuk meminta, memperpanjang, dan mencabut sertifikat. Anda dapat melakukan operasi ini menggunakan klien ACME. 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 domain yang dipisahkan koma yang sertifikatnya Anda minta

Pembersihan

Jika Anda 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 diterbitkan oleh rantai lingkungan staging hingga CA root pengujian. Sertifikat dari lingkungan staging tidak akan dipercaya oleh Browser atau klien lain yang belum dikonfigurasi untuk memercayai root certificate staging. Untuk mendapatkan secret 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 untuk lingkungan produksi, jalankan perintah berikut:
gcloud config unset api_endpoint_overrides/publicca

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

Langkah selanjutnya