Certificate Authority Service menyediakan template sertifikat yang telah ditentukan sebelumnya untuk membantu menyederhanakan dan mengamankan proses penerbitan sertifikat. Dengan menawarkan kumpulan parameter X.509 yang telah dikonfigurasi sebelumnya untuk kasus penggunaan umum, template siap pakai ini menyederhanakan pengelolaan sertifikat, mengurangi risiko kesalahan manusia, dan menerapkan praktik terbaik keamanan. Setiap template dirancang untuk kasus penggunaan tertentu guna memastikan bahwa sertifikat diterbitkan dengan parameter yang benar untuk tujuan yang dimaksudkan, sekaligus mematuhi batasan yang ditetapkan oleh certificate authority (CA) penerbit.
Dokumen ini ditujukan untuk audiens dalam grup operator aplikasi, seperti developer aplikasi atau ilmuwan data, yang mengelola siklus proses sertifikat dalam project mereka. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC yang terisolasi dari internet.
Menerapkan template sertifikat
Untuk menerapkan template, tentukan nama template di kolom certificateTemplate
resource CertificateRequest Anda. CA Service menerapkan parameter dari template yang dipilih ke sertifikat yang diterbitkan.
Untuk panduan mendetail tentang cara menyusun resource CertificateRequest dan menyertakan kolom certificateTemplate, lihat Meminta sertifikat.
Jenis template sertifikat
Template sertifikat standar berikut tersedia. Setiap template dirancang untuk kasus penggunaan tertentu dan telah mengonfigurasi parameter X.509 yang diterapkan oleh template.
Dalam deskripsi template di bawah, semua parameter yang tidak ditetapkan secara eksplisit oleh template diambil dari resource CertificateRequest, baik yang diberikan dalam Permintaan Penandatanganan Sertifikat (CSR) atau kolom yang Anda tentukan.
Default
Nama template: default
Template ini otomatis digunakan jika Anda tidak menentukan template sertifikat
di resource CertificateRequest. Sertifikat yang diterbitkan mewarisi setelan Key
usage dan Extended key usage dari profil CA penerbit, dan menetapkan
Basic constraints ke CA:FALSE, sehingga mencegah sertifikat digunakan untuk
menandatangani sertifikat lain.
| Parameter X509 | Nilai |
|---|---|
| RawSubject | [User defined SubjectOverride or Passthrough from CSR] |
| Batasan dasar | CA:FALSE |
| Nama alternatif subject | [Passthrough from CSR] |
| Penggunaan kunci | [Penggunaan kunci yang ditetapkan di CA] |
| Penggunaan kunci yang diperpanjang | [Penggunaan kunci yang diperpanjang ditetapkan di CA] |
Sertifikat TLS klien
Nama template: endEntityClientAuthCertificate
Template ini menerbitkan sertifikat entitas akhir untuk autentikasi TLS sisi klien.
Sertifikat yang diterbitkan menetapkan Extended key usage ke TLS web client
authentication, dan Basic constraints ke CA:FALSE, sehingga mencegah
sertifikat digunakan untuk menandatangani sertifikat lain.
| Parameter X509 | Nilai |
|---|---|
| RawSubject | [User defined SubjectOverride or Passthrough from CSR] |
| Batasan dasar | CA:FALSE |
| Nama alternatif subject | [Passthrough from CSR] |
| Penggunaan kunci | Kritis, tanda tangan digital, penyandian kunci |
| Penggunaan kunci yang diperpanjang | Autentikasi klien web TLS |
Sertifikat TLS server
Nama template: endEntityServerAuthCertificate
Template ini menerbitkan sertifikat entitas akhir untuk autentikasi TLS sisi server,
yang ideal untuk digunakan dengan server web. Sertifikat yang diterbitkan menetapkan Extended
key usage ke TLS web server authentication, dan Basic constraints ke
CA:FALSE, sehingga mencegah sertifikat digunakan untuk menandatangani
sertifikat lain.
| Parameter X509 | Nilai |
|---|---|
| RawSubject | [User defined SubjectOverride or Passthrough from CSR] |
| Batasan dasar | CA:FALSE |
| Nama alternatif subject | [Passthrough from CSR] |
| Penggunaan kunci | Kritis, tanda tangan digital, penyandian kunci |
| Penggunaan kunci yang diperpanjang | Autentikasi server web TLS |
Sertifikat CA subordinat (PathLen 0)
Nama template: blankSubCACertificate_PathLen0_CSRPassthrough
Template ini menerbitkan sertifikat CA subordinat dengan batasan panjang jalur 0, yang memungkinkan sertifikat menandatangani sertifikat entitas akhir, tetapi tidak sertifikat CA lain.
| Parameter X509 | Nilai |
|---|---|
| RawSubject | [User defined SubjectOverride or Passthrough from CSR] |
| Batasan dasar | CA:TRUE, pathlen: 0 |
| Nama alternatif subject | [Passthrough from CSR] |
| Penggunaan kunci | [Penggunaan kunci yang ditetapkan dalam CSR] |
| Penggunaan kunci yang diperpanjang | [Penggunaan kunci yang diperpanjang ditetapkan dalam CSR] |
Sertifikat CA subordinat (PathLen 1)
Nama template: blankSubCACertificate_PathLen1_CSRPassthrough
Template ini menerbitkan sertifikat CA bawahan dengan batasan panjang jalur 1, yang memungkinkan sertifikat menandatangani sertifikat entitas akhir serta sertifikat CA bawahan lain yang memiliki panjang jalur 0.
| Parameter X509 | Nilai |
|---|---|
| RawSubject | [User defined SubjectOverride or Passthrough from CSR] |
| Batasan dasar | CA:TRUE, pathlen: 1 |
| Nama alternatif subject | [Passthrough from CSR] |
| Penggunaan kunci | [Penggunaan kunci yang ditetapkan dalam CSR] |
| Penggunaan kunci yang diperpanjang | [Penggunaan kunci yang diperpanjang ditetapkan dalam CSR] |
Deteksi konflik
Setiap CA memiliki profil yang menentukan jenis sertifikat yang diizinkannya untuk dikeluarkan. Misalnya, CA mungkin dibatasi untuk hanya menerbitkan sertifikat autentikasi klien. Profil CA dikonfigurasi dalam bagian
certificateProfile dari resource CertificateAuthority saat
CA dibuat, seperti yang dijelaskan dalam
Membuat certificate authority root
dan
Membuat certificate authority bawahan.
Saat Anda meminta sertifikat menggunakan template yang telah ditentukan sebelumnya, CA Service akan memvalidasi parameter template terhadap konfigurasi CA penerbit. Agar valid,
parameter X.509 yang ditentukan dalam template yang dipilih harus merupakan subset dari parameter yang
diizinkan oleh CA penerbit sesuai dengan certificateProfile-nya. Konflik
terjadi jika template meminta atribut atau izin yang tidak
dapat diberikan oleh CA. Misalnya, template tidak dapat meminta
Extended key usage (EKU) serverAuth jika CA penerbit hanya diberi otorisasi
untuk memberikan clientAuth.
Jika CA Service mendeteksi konflik tersebut, CertificateRequest akan gagal. Anda dapat
memeriksa status resource CertificateRequest untuk memahami alasan
kegagalan.
Contoh
Dalam skenario berikut, CA bernama client-certs-ca dikonfigurasi untuk menerbitkan
sertifikat hanya untuk autentikasi klien. certificateProfile-nya menentukan
bahwa satu-satunya Extended key usage yang diizinkan adalah TLS web client authentication.
Anda mengirimkan CertificateRequest berikut untuk menerbitkan sertifikat bagi server, menggunakan template endEntityServerAuthCertificate:
apiVersion: pki.security.gdc.goog/v1
kind: CertificateRequest
metadata:
name: server-cert-req
namespace: my-project
spec:
certificateAuthorityRef:
name: client-certs-ca
namespace: my-project
csr: "..."
certificateTemplate: endEntityServerAuthCertificate
signedCertificateSecret: server-cert-secret
Permintaan ini gagal karena hal berikut:
- Template
endEntityServerAuthCertificatememerlukan EKUTLS web server authentication. - CA penerbit,
client-certs-ca, memilikicertificateProfileyang hanya mengizinkan EKUTLS web client authentication.
Karena EKU yang diperlukan oleh template tidak disertakan dalam daftar EKU yang diizinkan oleh profil CA, persyaratan template bukan merupakan subset dari parameter yang diizinkan CA. Oleh karena itu, permintaan ditolak.