Membuat CA subordinat dari CA eksternal

Halaman ini menjelaskan cara membuat certificate authority (CA) subordinate yang terhubung ke root CA eksternal.

Jika sudah memiliki hierarki infrastruktur kunci publik (PKI) yang berisi root CA dan CA subordinate, Anda dapat mempertahankan root CA yang sama dan membuat CA subordinate di Layanan CA yang terhubung ke root CA eksternal Anda. Kunci dan operasi root CA eksternal tetap berada di luar Google Cloud. Anda hanya dapat menggunakan root CA eksternal untuk menerbitkan sertifikat CA subordinate ke Google Cloud. CA subordinate langsung dipercaya oleh beban kerja apa pun yang mempercayai CA root eksternal. Anda kemudian dapat menggunakan CA subordinate untuk menerbitkan sertifikat tanpa perlu kembali ke root CA eksternal saat runtime.

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.
  • Identifikasi root CA eksternal.
  • Tentukan nama, subjek, periode validitas, dan ukuran kunci untuk subordinate CA. Untuk informasi selengkapnya, lihat Menentukan Setelan CA.

Membuat CA subordinat dari CA eksternal

Membuat CA subordinat dari CA eksternal melibatkan langkah-langkah berikut:

  1. Buat Permintaan Penandatanganan Sertifikat CA (CSR) subordinate: Langkah pertama adalah membuat CSR untuk CA subordinate, lalu mendownload CSR.

  2. Dapatkan sertifikat CA subordinate yang ditandatangani oleh root CA eksternal: Langkah kedua adalah mengirimkan CSR ke root CA eksternal untuk ditandatangani. Pastikan Anda mengikuti petunjuk khusus root CA eksternal untuk mengirimkan CSR dan memperoleh sertifikat yang ditandatangani.

  3. Impor sertifikat CA subordinate yang ditandatangani ke Layanan CA: Langkah terakhir adalah mengupload rantai sertifikat PEM yang ditandatangani menggunakan Google Cloud CLI atau Konsol Google Cloud.

Bagian berikut menunjukkan cara membuat CA subordinate dari root CA eksternal.

Buat CSR

Konsol

  1. Buka menu Security > Certificate Authority Service di Konsol Google Cloud.

    Buka Certificate Authority Service

  2. Klik tab Pengelola CA.

  3. Klik Create CA.

Pilih jenis CA:

  1. Klik Subordinate CA.
  2. Di kolom Valid for, masukkan durasi validitas sertifikat yang dikeluarkan oleh sertifikat CA.
  3. Klik Root CA is external.
  4. Pilih salah satu opsi yang tersedia untuk Tingkat CA. Untuk mengetahui informasi selengkapnya, lihat Memilih tingkat operasi.
  5. Di bagian Regionalization, pilih lokasi CA dari daftar.
  6. Klik Next.
Konfigurasi nama subjek CA
  1. Di kolom Organisasi (O), masukkan nama perusahaan Anda.
  2. Opsional: Di kolom Unit organisasi (OU), masukkan subdivisi atau unit bisnis perusahaan.
  3. Opsional: Di kolom Nama negara, masukkan kode negara dua huruf.
  4. Opsional: Di kolom Nama negara bagian atau provinsi, masukkan nama negara bagian Anda.
  5. Opsional: Di kolom Nama lokalitas, masukkan nama kota Anda.
  6. Di kolom Nama umum CA (CN), masukkan nama CA.
  7. Di kolom Pool ID, masukkan nama kumpulan CA. Anda tidak dapat mengubah kumpulan CA setelah membuat CA.
  8. Klik Next.
Konfigurasi ukuran dan algoritma kunci CA
  1. Pilih algoritme kunci yang paling sesuai dengan kebutuhan Anda. Untuk informasi tentang cara menentukan algoritma kunci yang sesuai, lihat Memilih algoritma kunci.
  2. Klik Next.
Mengonfigurasi artefak CA

Langkah-langkah berikut ini bersifat opsional. Jika Anda melewati langkah-langkah ini, setelan default akan berlaku.

  1. Pilih apakah Anda ingin menggunakan bucket Cloud Storage yang dikelola Google atau dikelola sendiri.
  2. Jika Anda tidak memilih bucket Cloud Storage yang dikelola sendiri, CA Service akan membuat bucket yang dikelola Google di lokasi yang sama dengan CA.

  3. Pilih apakah Anda ingin menonaktifkan publikasi daftar pencabutan sertifikat (CRL) dan sertifikat CA ke bucket Cloud Storage.
  4. Publikasi CRL dan sertifikat CA pada bucket Cloud Storage diaktifkan secara default. Untuk menonaktifkan setelan ini, klik tombol beralih.

  5. Klik Next.
Tambahkan label

Langkah-langkah berikut ini bersifat opsional.

Jika Anda ingin menambahkan label ke CA, lakukan hal berikut:

  1. Klik Tambahkan item.
  2. Di kolom Kunci 1, masukkan kunci label.
  3. Di kolom Nilai 1, masukkan nilai label.
  4. Jika Anda ingin menambahkan label lain, klik Tambahkan item. Kemudian, tambahkan kunci dan nilai label seperti yang disebutkan pada langkah 2 dan 3.
  5. Klik Next.
Meninjau setelan

Tinjau semua setelan dengan cermat, lalu klik Create untuk membuat CA.

Download CSR

  1. Di halaman Certificate authority, pilih CA yang ingin Anda aktifkan.
  2. Klik Aktifkan.
  3. Pada dialog yang terbuka, klik Download CSR.

    Download CSR CA.

gcloud

  1. Untuk membuat kumpulan CA bagi CA subordinat, jalankan perintah berikut. Untuk mengetahui informasi selengkapnya, lihat Membuat kumpulan CA.

    gcloud privateca pools create SUBORDINATE_POOL_ID
    

    Ganti SUBORDINATE_POOL_ID dengan nama kumpulan CA.

  2. Untuk membuat CA subordinat dalam kumpulan CA yang dibuat, jalankan perintah gcloud berikut. Perintah gcloud juga membuat CSR dan menyimpannya ke file FILE_NAME.

    gcloud privateca subordinates create SUBORDINATE_CA_ID \
      --pool=SUBORDINATE_POOL_ID \
      --create-csr --csr-output-file=FILE_NAME \
      --key-algorithm="ec-p256-sha256" \
      --subject="CN=Example Server TLS CA, O=Example LLC"
    

    Ganti kode berikut:

    • SUBORDINATE_CA_ID: ID unik CA subordinate.
    • SUBORDINATE_POOL_ID: Nama kumpulan CA.
    • FILE_NAME: Nama file tempat CSR berenkode PEM ditulis.

    Flag --key-algorithm menggunakan algoritma kriptografi yang ingin Anda gunakan untuk membuat kunci Cloud HSM terkelola untuk CA.

    Flag --subject menggunakan nama X.501 subjek sertifikat.

    Untuk mengetahui informasi selengkapnya tentang perintah gcloud privateca subordinates create, lihat gcloud privateca subordinates create.

Pernyataan berikut ditampilkan saat CSR dibuat:

Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID] and saved CSR to FILE_NAME.

Untuk melihat daftar lengkap setelan yang tersedia, jalankan perintah berikut:

gcloud privateca subordinates create --help

Jika CSR Anda hilang, Anda dapat mengunduhnya lagi menggunakan perintah berikut:

gcloud privateca subordinates get-csr SUBORDINATE_CA_ID \
  --pool=SUBORDINATE_POOL_ID

Terraform

  1. Untuk membuat kumpulan CA dan CA subordinate dalam kumpulan CA tersebut, gunakan file konfigurasi berikut:

    resource "google_privateca_ca_pool" "default" {
      name     = "test-ca-pool"
      location = "us-central1"
      tier     = "ENTERPRISE"
    }
    
    resource "google_privateca_certificate_authority" "sub-ca" {
      pool = google_privateca_ca_pool.default.name
      certificate_authority_id = "my-certificate-authority-sub"
      location = "us-central1"
      config {
        subject_config {
          subject {
            organization = "HashiCorp"
            common_name = "my-subordinate-authority"
          }
          subject_alt_name {
            dns_names = ["hashicorp.com"]
          }
        }
        x509_config {
          ca_options {
            is_ca = true
            # Force the sub CA to only issue leaf certs
            max_issuer_path_length = 0
          }
          key_usage {
            base_key_usage {
              cert_sign = true
              crl_sign = true
            }
            extended_key_usage {
            }
          }
        }
      }
      lifetime = "86400s"
      key_spec {
        algorithm = "RSA_PKCS1_4096_SHA256"
      }
      type = "SUBORDINATE"
    }
    
  2. Untuk mengambil CSR, tambahkan konfigurasi berikut.

    data "google_privateca_certificate_authority" "sub-ca-csr" {
      location = "us-central1"
      pool = google_privateca_ca_pool.default.name
      certificate_authority_id = google_privateca_certificate_authority.sub-ca.certificate_authority_id
    }
    
    output "csr" {
      value = data.google_privateca_certificate_authority.sub-ca-csr.pem_csr
    }
    
  3. Jalankan terraform apply.

Menandatangani CSR

Teruskan file CSR yang dibuat kepada anggota organisasi Anda yang bertanggung jawab atas penerbitan sertifikat, dan minta mereka untuk menandatanganinya. Langkah-langkah tertentu bergantung pada konfigurasi organisasi Anda.

Anda dapat bereksperimen dengan root CA sederhana menggunakan perintah openssl berikut:

Shell

Konfigurasi setelan untuk root CA baru.

cat > root.conf <<- EOM
[ req ]
distinguished_name = req_distinguished_name
x509_extensions    = v3_ca
prompt             = no
[ req_distinguished_name ]
commonName = Sample Root
[ v3_ca ]
subjectKeyIdentifier=hash
basicConstraints=critical, CA:true
EOM

Buat root CA baru.

openssl req -x509 -new -nodes -config root.conf -keyout rootCA.key \
  -days 3000 -out rootCA.crt -batch

Konfigurasi ekstensi yang harus ditambahkan ke sertifikat CA subordinate baru.

cat > extensions.conf <<- EOM
basicConstraints=critical,CA:TRUE,pathlen:0
keyUsage=critical,keyCertSign,cRLSign
extendedKeyUsage=critical,serverAuth
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
EOM

Tanda tangani CSR CA subordinate dengan root ini.

openssl x509 -req -in FILE_NAME -CA rootCA.crt -CAkey rootCA.key \
  -CAcreateserial -out subordinate.crt -days 1095 -sha256 -extfile extensions.conf

Gabungkan seluruh rantai sertifikat menjadi satu file.

cat subordinate.crt > chain.crt
cat rootCA.crt >> chain.crt

Upload sertifikat yang ditandatangani

Untuk mengaktifkan CA subordinat menggunakan sertifikat yang ditandatangani, lakukan hal berikut:

Konsol

  1. Buka halaman Certificate Authority Service di Konsol Google Cloud.

    Buka Certificate Authority Service

  2. Klik tab Pengelola CA.

  3. Di bagian Certificate authority, pilih subordinate CA yang Anda buat.

  4. Klik Aktifkan.

  5. Pada dialog yang terbuka, klik Download CSR untuk mendownload file CSR berenkode PEM yang dapat ditandatangani oleh CA penerbit.

  6. Klik Next.

  7. Di kolom Upload Certificate Chain, klik Browse.

  8. Upload file sertifikat yang ditandatangani dengan ekstensi .crt.

  9. Klik Aktifkan.

gcloud

gcloud privateca subordinates activate SUBORDINATE_CA_ID \
  --pool=SUBORDINATE_POOL_ID \
  --pem-chain ./chain.crt

Ganti kode berikut:

  • SUBORDINATE_CA_ID: ID unik subordinate CA yang ingin Anda aktifkan.
  • SUBORDINATE_POOL_ID: nama kumpulan CA yang berisi CA subordinat.

Flag --pem-chain wajib diisi. Tanda ini mengambil file yang berisi daftar sertifikat yang dienkode ke PEM. Daftar sertifikat dimulai dengan sertifikat CA saat ini dan diakhiri dengan sertifikat CA root.

Untuk mengetahui informasi selengkapnya tentang perintah gcloud privateca subordinates activate, lihat gcloud privateca subordinates activate.

Pernyataan berikut ditampilkan saat sertifikat yang ditandatangani diupload:

Activated certificate authority [SUBORDINATE_CA_ID].

Terraform

  1. Simpan sertifikat CA yang ditandatangani secara lokal sebagai subordinate.crt.
  2. Simpan sertifikat CA penanda tangan secara lokal sebagai rootCA.crt.
  3. Hapus konfigurasi untuk mengambil CSR yang disebutkan di langkah pertama saat konfigurasi mencoba mengambil CSR yang tidak diizinkan setelah aktivasi CA.
  4. Perbarui konfigurasi CA subordinate dengan kolom berikut dan jalankan terraform apply
  pem_ca_certificate     = file("subordinate.crt")
  subordinate_config {
    pem_issuer_chain {
        pem_certificates = [file("rootCA.crt")]
    }
  }

Langkah selanjutnya