Membuat root certificate authority
Halaman ini menjelaskan cara membuat certificate authority (CA) root di kumpulan CA.
CA root berada di bagian atas hierarki infrastruktur kunci publik (PKI) dan bertanggung jawab untuk membentuk anchor kepercayaan PKI. Untuk berpartisipasi dengan benar dan menggunakan sertifikat dalam PKI, perangkat, software, atau komponen harus memercayai PKI. Hal ini dilakukan dengan mengonfigurasi perangkat, software, atau komponen agar memercayai root CA. Akibatnya, semua sertifikat yang dikeluarkan oleh CA root dipercaya.
Sebelum memulai
- Pastikan Anda memiliki peran IAM CA Service Operation Manager (
roles/privateca.caManager
) atau CA Service Admin (roles/privateca.admin
). Untuk mengetahui informasinya, lihat Mengonfigurasi kebijakan IAM. - Buat kumpulan CA.
- Tentukan setelan CA Anda.
Membuat CA root
CA root memiliki sertifikat yang ditandatangani sendiri yang harus Anda distribusikan ke penyimpanan tepercaya klien Anda. Sertifikat CA root berada di bagian atas rantai sertifikat. Tidak ada CA lain yang dapat mencabut sertifikat CA. CRL CA root hanya berlaku untuk sertifikat lain yang dikeluarkan oleh CA root, tetapi tidak untuk CA root itu sendiri.
Anda dapat membuat CA root di kumpulan CA yang ada atau kumpulan CA baru. Petunjuk berikut menggunakan kumpulan yang ada.
Konsol
Untuk membuat CA root di kumpulan CA yang ada, lakukan hal berikut:
Buka halaman Certificate Authority Service di konsol Google Cloud .
Klik tab Pengelola CA.
Klik panah peluas Create CA
, lalu pilih Create CA in an existing CA pool.
Pilih kumpulan CA
Pilih kumpulan CA yang ada dari daftar, lalu klik Lanjutkan.
Pilih jenis CA
- Di bagian Type, pilih Root CA.
- Di kolom Valid untuk, masukkan durasi yang Anda inginkan agar sertifikat yang diterbitkan oleh sertifikat CA valid.
- Di bagian Status yang diinisialisasi, pilih status operasional CA yang akan dibuat.
- Klik Lanjutkan.
- Di kolom Organisasi (O), masukkan nama perusahaan Anda.
- Opsional: Di kolom Unit organisasi (OU), masukkan subdivisi atau unit bisnis perusahaan.
- Opsional: Di kolom Nama negara (C), masukkan kode negara dua huruf.
- Opsional: Di kolom Nama negara bagian atau provinsi, masukkan nama negara bagian Anda.
- Opsional: Di kolom Nama kota, masukkan nama kota Anda.
- Di kolom Nama umum (CN) CA, masukkan nama CA.
- Klik Lanjutkan.
- Pilih algoritma utama yang paling sesuai dengan kebutuhan Anda. Untuk mengetahui informasi tentang cara menentukan algoritma kunci yang sesuai, lihat Memilih algoritma kunci.
- Klik Lanjutkan.
- Pilih apakah Anda ingin menggunakan bucket Cloud Storage yang dikelola Google atau yang dikelola pelanggan.
- Untuk bucket Cloud Storage yang dikelola Google, CA Service membuat bucket yang dikelola Google di lokasi yang sama dengan CA.
- Untuk bucket Cloud Storage yang dikelola pelanggan, klik Jelajahi, lalu pilih salah satu bucket Cloud Storage yang ada.
- Klik Lanjutkan.
Langkah-langkah berikut bersifat opsional.
Jika Anda ingin menambahkan label ke CA, lakukan hal berikut:
- Klik Tambahkan item.
- Di kolom Key 1, masukkan kunci label.
- Di kolom Value 1, masukkan nilai label.
- Jika Anda ingin menambahkan label lain, klik Tambahkan item. Kemudian, tambahkan kunci dan nilai label seperti yang disebutkan di langkah 2 dan 3.
- Klik Lanjutkan.
Tinjau semua setelan dengan cermat, lalu klik Selesai untuk membuat CA.
gcloud
Untuk membuat CA root baru di kumpulan CA yang ada, jalankan perintah berikut:
gcloud privateca roots create ROOT_CA_ID \ --location=LOCATION \ --pool=POOL_ID \ --key-algorithm=KEY_ALGORITHM \ --subject="CN=my-ca, O=Test LLC"
Ganti kode berikut:
- ROOT_CA_ID: nama CA.
- LOCATION: lokasi CA pool.
- POOL_ID: nama pool CA.
- KEY_ALGORITHM: algoritma yang akan digunakan untuk membuat
kunci Cloud KMS. Flag ini bersifat opsional. Jika Anda tidak
menyertakan tanda ini, algoritma kunci akan ditetapkan secara default ke
rsa-pkcs1-4096-sha256
. Untuk mengetahui informasi selengkapnya, lihat flag --key-algorithm.
Secara default, CA dibuat dalam status
STAGED
. Untuk mengaktifkan CA secara default, sertakan tanda--auto-enable
.Jika Anda ingin menggunakan bucket Cloud Storage yang dikelola pelanggan untuk memublikasikan sertifikat CA dan CRL, tambahkan
--bucket bucket-name
ke perintah. Ganti bucket-name dengan nama bucket Cloud Storage.Untuk melihat daftar lengkap setelan, jalankan perintah berikut:
gcloud privateca roots create --help
Terraform
Untuk membuat CA root menggunakan kunci enkripsi yang dimiliki dan dikelola Google, gunakan contoh konfigurasi berikut:
Untuk membuat CA root menggunakan kunci yang dikelola sendiri, gunakan konfigurasi contoh berikut:
Go
Untuk melakukan autentikasi ke CA Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke CA Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke CA Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST API
Buat CA root.
Metode HTTP dan URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities?certificate_authority_id=ROOT_CA_ID
Meminta isi JSON:
{ "type": "SELF_SIGNED", "lifetime": { "seconds": 315576000, "nanos": 0 }, "config": { "subject_config": { "subject": { "organization": "ORGANIZATION_NAME", "common_name": "COMMON_NAME" } }, "x509_config":{ "ca_options":{ "is_ca":true }, "key_usage":{ "base_key_usage":{ "cert_sign":true, "crl_sign":true } } } }, "key_spec":{ "algorithm":"RSA_PKCS1_4096_SHA256" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": false }
Lakukan polling pada operasi hingga selesai.
Metode HTTP dan URL:
GET https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CertificateAuthority", "name": "...", } }
Setelah memverifikasi bahwa CA berfungsi seperti yang diharapkan, Anda dapat mengaktifkannya untuk mulai menerbitkan sertifikat yang di-load balance untuk kumpulan CA.
Mengaktifkan CA root
gcloud
Untuk mengaktifkan CA root, jalankan perintah gcloud
berikut:
gcloud privateca roots enable ROOT_CA_ID --location=LOCATION --pool=POOL_ID
Ganti kode berikut:
- ROOT_CA_ID: nama CA.
- LOCATION: lokasi CA pool. Untuk daftar lengkap lokasi, lihat Lokasi.
- POOL_ID: nama pool CA.
Terraform
Jika Anda menggunakan Terraform untuk membuat CA root, CA root akan diaktifkan saat pembuatan. Untuk membuat CA root dalam status STAGED
, tetapkan kolom desired_state
ke STAGED
saat membuat CA.
Anda dapat menyetel kolom desired_state
ke ENABLED
atau DISABLED
setelah pembuatan CA.
Go
Untuk melakukan autentikasi ke CA Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke CA Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke CA Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST API
Aktifkan CA untuk menerbitkan sertifikat dari kumpulan CA.
Metode HTTP dan URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/ROOT_CA_ID:enable
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": false }
Lakukan polling pada operasi hingga selesai.
Metode HTTP dan URL:
GET https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CertificateAuthority", "name": "...", } }
Menguji CA
Untuk memverifikasi bahwa CA dapat menerbitkan sertifikat, minta sertifikat dari
kumpulan CA terkait dan sebutkan secara eksplisit nama CA yang ingin Anda
uji menggunakan tanda --ca
.
Anda dapat menggunakan metode berikut untuk meminta sertifikat dari kumpulan CA:
- Minta Layanan CA membuat kunci pribadi atau publik untuk Anda.
- Buat kunci pribadi atau publik Anda sendiri dan kirimkan Permintaan Penandatanganan Sertifikat (CSR).
Lebih mudah menggunakan kunci pribadi atau kunci publik yang dibuat secara otomatis untuk meminta sertifikat dari CA dalam kumpulan CA. Bagian ini memberikan informasi tentang pengujian CA menggunakan metode tersebut.
Untuk menggunakan kunci pribadi atau kunci publik yang dibuat secara otomatis untuk meminta sertifikat dari
CA di kumpulan CA, jalankan perintah gcloud
berikut:
gcloud privateca certificates create \
--issuer-pool=POOL_ID \
--issuer-location=ISSUER_LOCATION \
--ca=ROOT_CA_ID \
--generate-key \
--key-output-file=KEY_FILENAME \
--cert-output-file=CERT_FILENAME \
--dns-san=DNS_NAME
Ganti kode berikut:
- POOL_ID: nama pool CA.
- ISSUER_LOCATION: lokasi Certificate Authority (CA) yang menerbitkan sertifikat digital.
- ROOT_CA_ID: ID unik CA yang ingin Anda uji.
- KEY_FILENAME: file tempat kunci yang dihasilkan ditulis dalam format PEM.
- CERT_FILENAME: file tempat file rantai sertifikat berenkode PEM ditulis. Urutan rantai sertifikat adalah dari leaf ke root.
DNS_NAME: satu atau beberapa Nama Alternatif Subjek (SAN) DNS yang dipisahkan koma.
Flag
--generate-key
membuat kunci pribadi RSA-2048 baru di komputer Anda.
Untuk menggunakan Permintaan Penandatanganan Sertifikat (CSR) guna meminta sertifikat dari CA di kumpulan CA, atau untuk mengetahui informasi selengkapnya tentang meminta sertifikat, lihat Meminta sertifikat dan melihat sertifikat yang diterbitkan.
Meng-clone certificate authority
Untuk meng-clone CA yang ada guna memperpanjang masa berlaku CA tersebut, atau untuk membuat CA baru dengan konfigurasi yang sama, jalankan perintah berikut:
gcloud privateca roots create NEW_CA_ID \
--location=LOCATION \
--pool=POOL_ID \
--from-ca=EXISTING_CA_ID \
--key-algorithm "ec-p384-sha384"
Ganti kode berikut:
- NEW_CA_ID: ID unik CA baru.
- LOCATION: lokasi CA pool.
- POOL_ID: nama kumpulan CA tempat Anda ingin membuat CA baru.
- EXISTING_CA_ID: ID CA sumber atau ID yang memenuhi syarat sepenuhnya untuk CA sumber.
Flag --from-ca
didukung untuk pembuatan CA root dan subordinat. CA yang ada harus berada di CA pool yang sama dengan CA baru.
Flag --key-algorithm
menyalin semua konfigurasi CA dari CA yang ada
(kecuali versi kunci Cloud KMS dan bucket Cloud Storage).
Namun, Anda tetap dapat mengganti nilai konfigurasi apa pun di CA baru dengan
memberikan tanda yang sesuai secara eksplisit. Misalnya, Anda masih dapat menentukan
`--subject SUBJECT untuk menggunakan subjek baru.
Jika Anda menghilangkan tanda --key-algorithm
, algoritma akan ditetapkan secara default ke:
rsa-pkcs1-4096-sha256
untuk CA root.rsa-pkcs1-2048-sha256
untuk CA subordinat.
Untuk mengetahui informasi selengkapnya tentang perintah gcloud
ini, lihat gcloud privateca roots
create.
Langkah berikutnya
- Pelajari cara membuat CA bawahan.
- Pelajari cara meminta sertifikat.
- Pelajari template dan kebijakan penerbitan.