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 AndaUSER
: 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 AndaSERVER
: URL direktori ACME untuk lingkungan produksi atau stagingEAB_KID
: ID kunci EABEAB_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 stagingDOMAINS
: 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/
gcloud publicca external-account-keys create
gcloud config unset api_endpoint_overrides/publicca
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID