Membuat root certificate authority
Halaman ini menjelaskan cara membuat root certificate authority (CA) di kumpulan CA.
CA root berada di bagian atas hierarki infrastruktur kunci publik (PKI) dan bertanggung jawab untuk membentuk anchor kepercayaan PKI. Untuk berpartisipasi dan menggunakan sertifikat dengan benar di 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 root CA tepercaya.
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
Root CA memiliki sertifikat yang ditandatangani sendiri yang harus Anda distribusikan ke penyimpanan kepercayaan klien. Sertifikat root CA berada di bagian atas rantai sertifikat. Tidak ada CA lain yang dapat mencabut sertifikat CA. CRL root CA hanya berlaku untuk sertifikat lain yang dikeluarkan root CA, tetapi tidak untuk sertifikat 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 for, masukkan durasi yang Anda inginkan untuk sertifikat yang diterbitkan oleh sertifikat CA agar valid.
- Di bagian Status inisialisasi, pilih status operasional CA yang akan dibuat.
- Klik Lanjutkan.
- Di kolom Organization (O), masukkan nama perusahaan Anda.
- Opsional: Di kolom Unit organisasi (OU), masukkan subdivisi atau unit bisnis perusahaan.
- Opsional: Di kolom Country name (C), masukkan kode negara yang terdiri atas dua huruf.
- Opsional: Di kolom Nama negara bagian atau provinsi, masukkan nama negara bagian Anda.
- Opsional: Di kolom Locality name, masukkan nama kota Anda.
- Di kolom CA common name (CN), masukkan nama CA.
- Klik Lanjutkan.
- Pilih algoritma kunci 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 dikelola pelanggan.
- Untuk bucket Cloud Storage yang dikelola Google, Layanan CA akan 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 pada langkah 2 dan 3.
- Klik Lanjutkan.
Tinjau semua setelan dengan cermat, lalu klik Done 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 kumpulan CA.
- POOL_ID: nama kumpulan CA.
- KEY_ALGORITHM: algoritma yang akan digunakan untuk membuat
kunci Cloud KMS. Flag ini bersifat opsional. Jika Anda tidak
menyertakan flag ini, algoritma kunci akan ditetapkan secara default ke
rsa-pkcs1-4096-sha256
. Untuk informasi selengkapnya, lihat tanda --key-algorithm.
Secara default, CA dibuat dalam status
STAGED
. Untuk mengaktifkan CA secara default, sertakan flag--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 setelan yang lengkap, jalankan perintah berikut:
gcloud privateca roots create --help
Terraform
Untuk membuat root CA menggunakan kunci enkripsi yang dimiliki dan dikelola Google , gunakan konfigurasi contoh berikut:
Untuk membuat CA root menggunakan kunci yang dikelola sendiri, gunakan contoh konfigurasi berikut:
Go
Untuk melakukan autentikasi ke Layanan CA, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Layanan CA, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Layanan CA, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST API
Buat root CA.
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 load-balanced 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 kumpulan CA. Untuk mengetahui daftar lengkap lokasi, lihat Lokasi.
- POOL_ID: nama kumpulan CA.
Terraform
Jika Anda menggunakan Terraform untuk membuat CA root, CA root akan diaktifkan saat pembuatan. Untuk membuat root CA dalam status STAGED
, tetapkan kolom desired_state
ke STAGED
saat membuat CA.
Anda dapat menetapkan kolom desired_state
ke ENABLED
atau DISABLED
setelah pembuatan
CA.
Go
Untuk melakukan autentikasi ke Layanan CA, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Layanan CA, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Layanan CA, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST API
Mengaktifkan 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 flag --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 kumpulan 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 yang dihasilkan ditulis. urutan rantai sertifikat adalah dari leaf ke root.
DNS_NAME: satu atau beberapa Nama Alternatif Subjek DNS (SAN) yang dipisahkan koma.
Flag
--generate-key
menghasilkan kunci pribadi RSA-2048 baru di mesin Anda.
Untuk menggunakan Permintaan Penandatanganan Sertifikat (CSR) guna meminta sertifikat dari CA dalam kumpulan CA, atau untuk mengetahui informasi selengkapnya tentang cara meminta sertifikat, lihat Meminta sertifikat dan melihat sertifikat yang diterbitkan.
Meng-clone certificate authority
Untuk meng-clone CA yang ada guna memperpanjang CA tersebut, atau 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 kumpulan CA.
- 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.
Tanda --from-ca
didukung untuk pembuatan CA root dan subordinat. CA
yang ada harus berada dalam kumpulan CA yang sama dengan CA baru.
Flag --key-algorithm
menyalin semua konfigurasi CA dari CA yang ada (kecuali untuk versi kunci Cloud KMS dan bucket Cloud Storage).
Namun, Anda masih 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 menghapus flag --key-algorithm
, algoritma akan ditetapkan secara default ke:
rsa-pkcs1-4096-sha256
untuk root CA.rsa-pkcs1-2048-sha256
untuk CA subordinat.
Untuk informasi selengkapnya tentang perintah gcloud
ini, lihat gcloud privateca roots
create.
Langkah berikutnya
- Pelajari cara membuat CA subordinat.
- Pelajari cara meminta sertifikat.
- Pelajari template dan kebijakan penerbitan.