Meminta sertifikat menggunakan Public CA dan klien ACME

Tutorial ini memandu Anda meminta sertifikat TLS dengan Public Certificate Authority menggunakan Google Cloud CLI. Untuk mengetahui informasi tentang CA root dan perantara yang digunakan oleh Public Certificate Authority, lihat Google Trust Services. Tidak ada biaya untuk meminta sertifikat dari Public CA.

Sebelum memulai

  • Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

    gcloud init

    Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus terlebih dahulu login ke gcloud CLI dengan identitas gabungan Anda.

  • Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Memilih project: Memilih project tidak memerlukan peran IAM tertentu Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

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

    • Pilih Google Cloud project yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan Google Cloud nama project Anda.

  • Pastikan Anda memiliki peran IAM Pembuat Kunci Akun Eksternal CA Publik (roles/publicca.externalAccountKeyCreator).

    Untuk memberikan peran ini, jalankan perintah berikut:

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

    Ganti kode berikut:

    • PROJECT_ID: ID Google Cloud project 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.

  • Aktifkan Public CA API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    gcloud services enable publicca.googleapis.com

Menginstal klien

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

Untuk menginstal Certbot, lihat petunjuk Certbot.

Pastikan untuk mengarahkan klien Anda ke server Public CA. Saat klien ACME berinteraksi dengan Public CA untuk pertama kalinya, klien akan membuat pasangan kunci baru dan mengirim kunci publik ke Public CA.

Meminta ID kunci EAB dan HMAC

Setelah menginstal klien ACME, Anda harus mendaftarkan akun ACME ke Public CA untuk meminta sertifikat dari Public CA. Secret EAB dapat membantu Anda mendaftarkan akun ACME ke Public CA. Secret EAB terdiri dari ID kunci dan hash-based message authentication code (HMAC).

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 menampilkan secret EAB yang valid di lingkungan produksi Public CA. Di 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 tidak valid jika Anda tidak menggunakannya dalam waktu 7 hari. Akun ACME yang didaftarkan menggunakan secret EAB tidak memiliki masa berlaku.

Mendaftarkan akun ACME

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

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

Untuk mendaftarkan akun ACME ke Public CA dan mengikat akun ACME ke Google Cloud project 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 yang dipercaya publik. https://dv.acme-v02.api.pki.goog/directory
Staging Lingkungan staging menampilkan sertifikat yang tidak dipercaya 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 akan 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 Public CA memvalidasi kontrol Anda atas target sertifikat dan mengakui 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

Google Cloud

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

Staging

Anda dapat menggunakan lingkungan staging Public CA 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 mempercayai sertifikat root 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

Hapus a Google Cloud project:

gcloud projects delete PROJECT_ID

Langkah berikutnya