手動重新核發 PKI 網路憑證

本文說明如何手動觸發 Google Distributed Cloud (GDC) 實體隔離裝置網頁端點的憑證重新核發程序。

事前準備

手動重新核發網站憑證前,您必須具備必要權限並準備好環境。

要求 IAM 角色

如要在命名空間中建立、更新及刪除 PKI 網路憑證,請與機構 IAM 管理員聯絡,要求 Web TLS Certificate Admin (web-tls-cert-admin) 角色。

請注意下列帳戶規定:

  • 基礎架構營運商群組的成員必須在系統命名空間中重新發行 PKI 網頁憑證。
  • 平台管理員群組的成員可以在他們管理的所有其他命名空間中,重新核發 PKI 網路憑證。

準備環境

重新核發憑證

您可以手動重新核發憑證,並更新註解。如果預設憑證頒發機構變更,除非憑證即將到期,否則 GDC 實體隔離裝置不會自動重新簽發由先前預設憑證頒發機構簽署的憑證。

如要手動觸發重新核發憑證,請使用 kubectl CLI 執行下列步驟:

  1. 將目標 Certificate 的 manual-reissuance 註解設為 requested。以下範例會更新 istio-system 命名空間中的 default-wildcard-cert 憑證,該命名空間使用目前的預設憑證頒發機構:

    kubectl annotate --overwrite certificate.pki.security.gdc.goog
    default-wildcard-cert -n istio-system
    pki.security.gdc.goog/manual-reissuance='requested'
    
  2. 重新核發認證時,您可能會看到 in-progress 註解值為轉換狀態。等待manual-reissuance 註解值顯示 finished:

    kubectl -n istio-system get
    certificate.pki.security.gdc.goog/default-wildcard-cert -ojson | jq -r '
    .metadata.annotations."pki.security.gdc.goog/manual-reissuance"'
    

    輸出看起來類似以下內容:

    finished
    
  3. 驗證憑證頒發機構;該機構必須與憑證規格中提及的頒發機構相符,如果未指定,則頒發機構必須與目前的預設頒發機構相符:

    kubectl -n istio-system get certificate.pki.security.gdc.goog/default-wildcard-cert -ojson | jq -r '
    .status.issuedBy'
    

    輸出看起來類似以下內容:

    {
      "name": "byo-cert-issuer",
      "namespace": "pki-system"
    }
    

自行攜帶憑證手動輪替

觸發並完成手動自備憑證 (BYO 憑證) 輪替作業時,您必須為先前簽署的 BYO 憑證簽署新產生的憑證簽署要求 (CSR)。詳情請參閱「簽署自備憑證」。

輪替期間,GDC 氣隙隔離裝置會建立新的私密和公開金鑰組。因此先前上傳的簽署憑證與新 CSR 不相容。如果憑證規格自首次上傳後未變更,系統會繼續使用先前上傳的憑證,直到憑證到期為止。如果規格變更,會發生下列其中一個事件:

  • GDC 氣隙隔離設備會使用現有的相符憑證。
  • 備援憑證授權單位 (CA) 核發新憑證。

自備憑證手動輪替範例

在以下範例中,您會看到先前簽署的自備憑證,已觸發手動輪替:

  • byoCertStatus 顯示憑證 type 值為 Ready,
  • reason 值為 Issued,且 lastTransitionTime 值早於前一個值:

    {
     "byoCertStatus": {
       "csrStatus": {
         "conditions": [
           {
             "lastTransitionTime": "2024-05-03T22:38:43Z",
             "message": "",
             "observedGeneration": 2,
             "reason": "WaitingForSigning",
             "status": "False",
             "type": "Ready"
           }
         ],
         "csr": "LS0tLS1CRUdJTiBDRVJ..."
       },
       "signedCertStatus": {
         "conditions": [
           {
             "lastTransitionTime": "2024-05-03T22:38:43Z",
             "message": "RawSubjectPublickKeyInfo does not match with the CSR",
             "observedGeneration": 2,
             "reason": "Rejected",
             "status": "False",
             "type": "Ready"
           }
         ]
       }
     },
     ```
    

在以下範例中,您會看到先前簽署的自備憑證輸出內容,該憑證已觸發手動輪替:

  • 在 signedCertStatus 中,reason 欄位會顯示 Rejected,因為先前簽署的憑證在輪替後,已不再符合新的 CSR。
  • CSR reason 狀態 WaitingForSigning:

    "conditions": [
      {
        "lastTransitionTime": "2024-05-03T08:42:10Z",
        "message": "Certificate is issued",
        "observedGeneration": 2,
        "reason": "Issued",
        "status": "True",
        "type": "Ready"
      }
    ],
    "errorStatus": {
      "errors": [
        {
          "code": "PLATAUTH2002",
          "message": "Waiting for CSR signing"
        }
      ],
      "lastUpdateTime": "2024-05-03T22:38:43Z"
    },
    "issuedBy": {
      "name": "byo-cert-issuer",
      "namespace": "pki-system"
    }
    }
    

管理憑證簽署快訊

對於初始核發、輪替和到期的憑證簽署警報,IO 必須使用 PKI 執行手冊中這些章節記錄的疑難排解步驟來解決:

  • 如為子 CA errorCode:PLATAUTH2001,請參閱 PLATAUTH-R2001。

  • 如為 BYO 憑證 errorCode:PLATAUTH2002,請參閱 PLATAUTH-R2002。

後續步驟