手動重新核發 PKI 網路憑證

本頁面提供操作說明,引導您手動觸發 Google Distributed Cloud (GDC) 實體隔離網路端點的憑證重新核發程序。

事前準備

如要取得在命名空間中存取憑證所需的權限,請要求機構的 IAM 管理員授予您「Web TLS 憑證管理員」(web-tls-cert-admin) 角色。

重新核發憑證時,請注意下列帳戶規定:

  • 使用基礎架構運算子 (IO) 帳戶存取系統命名空間中的憑證。請要求 IO 執行這項工作。
  • 使用平台管理員帳戶存取其他命名空間中的憑證。

重新核發憑證

您可以手動重新核發附有註解更新的憑證。如果預設憑證簽發機構變更,除非憑證即將到期,否則 Distributed Cloud 不會自動重新簽發由先前預設憑證簽發機構簽署的憑證。

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

  1. 將目標 Certificatemanual-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)。詳情請參閱「簽署自備憑證」。

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

  • Distributed Cloud 會使用現有的相符憑證。
  • 備援憑證授權單位 (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"
           }
         ]
       }
     },
     ```
    

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

  • 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 執行手冊中這些章節記錄的疑難排解步驟來解決:

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

  • 如為自備憑證,錯誤代碼為 PLATAUTH2002,請參閱 PLATAUTH-R2002。