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