Mencabut sertifikat

Dokumen ini menjelaskan cara mencabut sertifikat menggunakan Certificate Authority Service. Mencabut sertifikat akan membatalkan validitasnya sebelum tanggal habis masa berlaku, sehingga mencegahnya digunakan untuk autentikasi. Anda dapat mencabut sertifikat jika kunci pribadi disusupi, sertifikat digantikan oleh sertifikat baru, atau sertifikat tidak lagi diperlukan (misalnya saat layanan yang menerbitkan sertifikat dinonaktifkan).

Dokumen ini ditujukan untuk audiens dalam grup operator aplikasi, seperti developer aplikasi atau data scientist, yang mengelola siklus proses sertifikat dalam project mereka. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.

Tentang pencabutan sertifikat

CA Service mendukung pencabutan sertifikat dengan memublikasikan Daftar Pencabutan Sertifikat (CRL). CRL adalah daftar nomor seri sertifikat yang telah dicabut dan tidak lagi dipercaya. Secara default, CRL baru dipublikasikan setiap 15 menit. Selain itu, setiap pencabutan sertifikat yang berhasil akan otomatis memicu pembuatan CRL baru.

Sertifikat yang diterbitkan oleh CA Service menyertakan ekstensi yang disebut CRL Distribution Point (CDP). Ekstensi ini berisi URL tempat Anda dapat menemukan dan mendownload CRL untuk sertifikat tersebut. Aplikasi klien menggunakan URL ini untuk mengambil CRL dan memeriksa apakah nomor seri sertifikat ada. Jika nomor seri muncul dalam daftar, sertifikat dianggap tidak valid, dan koneksi harus ditolak.

Sebelum memulai

Sebelum dapat mencabut sertifikat, Anda harus meminta izin yang diperlukan dan menyiapkan lingkungan Anda.

Meminta peran IAM

Untuk mencabut sertifikat dan melihat permintaan pencabutan, hubungi Admin Organisasi IAM Anda untuk meminta peran CA Service Operation Manager (certificate-authority-service-operation-manager) di namespace project certificate authority.

Menyiapkan lingkungan Anda

Mencabut sertifikat

Metode untuk mencabut sertifikat bergantung pada apakah certificate authority (CA) penerbit telah mengaktifkan mode ACME. Setelah Anda mencabut sertifikat, nomor serinya akan muncul di semua CRL mendatang untuk CA tersebut hingga masa berlaku sertifikat berakhir.

Mencabut sertifikat dari CA yang mendukung ACME

Setiap CA yang mendukung ACME mengekspos URL server ACME yang unik dalam statusnya setelah siap. Untuk mencabut sertifikat dari CA yang mendukung ACME, Anda harus menggunakan alat klien ACME untuk berinteraksi dengan URL ini menggunakan protokol ACME.

Cabut sertifikat dari CA yang mendukung ACME:

  1. Ambil URL server ACME untuk CA Anda:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      get certificateauthorities CA_NAME \
      -n USER_PROJECT_NAMESPACE \
      -ojson | jq -r '.status.acme.uri'
    

    Ganti kode berikut:

    • MANAGEMENT_API_SERVER_KUBECONFIG: Jalur ke file kubeconfig server Management API.
    • CA_NAME: Nama CA yang mendukung ACME (root atau subordinat).
    • USER_PROJECT_NAMESPACE: Namespace project.
  2. Gunakan URL yang diperoleh dengan alat klien ACME pilihan Anda untuk mengeluarkan permintaan pencabutan. Lihat dokumentasi untuk klien ACME spesifik Anda guna mengetahui detailnya.

Mencabut sertifikat dari CA yang ACME-nya dinonaktifkan

Jika mode ACME dinonaktifkan di CA, cabut sertifikat dengan membuat dan menerapkan resource kustom RevokeCertificateRequest:

  1. Buat file YAML resource kustom RevokeCertificateRequest (seperti revoke-cert-request.yaml):

    apiVersion: pki.security.gdc.goog/v1
    kind: RevokeCertificateRequest
    metadata:
      name: REVOKE_CERT_REQ_NAME
      namespace: USER_PROJECT_NAMESPACE
    spec:
      certificateRequestRef:
        name: CERT_REQ_NAME
        namespace: USER_PROJECT_NAMESPACE
      reason: REASON
    

    Ganti kode berikut:

    • REVOKE_CERT_REQ_NAME: Nama yang ditentukan pengguna untuk permintaan pencabutan.
    • USER_PROJECT_NAMESPACE: Namespace project.
    • CERT_REQ_NAME: Nama resource CertificateRequest yang terkait dengan sertifikat yang ingin Anda cabut.
    • REASON: Alasan pencabutan. Berikut adalah alasan yang valid: Unspecified, KeyCompromise, CaCompromise, AffiliationChanged, Superseded, CessationOfOperation, CertificateHold, RemoveFromCrl, PrivilegeWithdrawn, dan AaCompromise.
  2. Terapkan resource kustom:

    kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG
    

    Ganti MANAGEMENT_API_SERVER_KUBECONFIG dengan jalur ke file kubeconfig server Management API.

  3. Verifikasi kesiapan permintaan pencabutan sertifikat:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      -n USER_PROJECT_NAMESPACE \
      get revokecertificaterequest.pki.security.gdc.goog/REVOKE_CERT_REQ_NAME \
      -ojson | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))'
    

    Ganti kode berikut:

    • MANAGEMENT_API_SERVER_KUBECONFIG: Jalur ke file kubeconfig server Management API.
    • USER_PROJECT_NAMESPACE: Namespace project.
    • REVOKE_CERT_REQ_NAME: Nama untuk permintaan pencabutan.

    Outputnya akan terlihat mirip seperti berikut:

    {
      "lastTransitionTime": "2025-08-19T23:20:22Z",
      "message": "RevokeCertificateRequest reconciled",
      "observedGeneration": 1,
      "reason": "Ready",
      "status": "True",
      "type": "Ready"
    }
    

    Prosesnya selesai dan nomor seri sertifikat ditambahkan ke CRL berikutnya yang dibuat.

Mencantumkan permintaan sertifikat yang dicabut

Mencantumkan semua resource RevokeCertificateRequest dalam namespace project:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
  -n USER_PROJECT_NAMESPACE \
  get revokecertificaterequests

Ganti kode berikut:

  • MANAGEMENT_API_SERVER_KUBECONFIG: Jalur ke file kubeconfig server Management API.
  • USER_PROJECT_NAMESPACE: Namespace project.

Outputnya akan terlihat mirip seperti berikut:

NAMESPACE    NAME                      READY   AGE
foo          revoke-cert-req           True    30s