管理安全資料傳輸層 (SSL)/傳輸層安全標準 (TLS) 憑證

本頁說明如何管理用戶端和伺服器 CA 憑證。

管理用戶端憑證

請按照下列程序管理 Cloud SQL 中的用戶端憑證。

擷取用戶端憑證

您可以擷取用戶端憑證的公開金鑰部分,但無法擷取私密金鑰。如果您已遺失私密金鑰,則必須建立新的憑證。

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 選取「安全性」分頁標籤。
  5. 在「管理用戶端憑證」中,按一下憑證名稱。
  6. 「SSL Client Certificate」頁面會隨即開啟,並顯示用戶端憑證 (client-cert.pem) 和下載憑證的連結。

gcloud

使用 ssl client-certs describe 指令擷取用戶端憑證的公開金鑰:

gcloud sql ssl client-certs describe CERT_NAME \
--instance=INSTANCE_NAME \
--format="value(cert)" > client-cert.pem

REST v1

  1. 列出執行個體上的憑證,取得您要擷取之憑證的指紋:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    記錄要擷取的憑證的 sha1Fingerprint 欄位。請勿加上引號。

  2. 擷取憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID
    • sha1FingerPrint:憑證的 sha1FingerPrint

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  3. 將所有包含引號的憑證資料複製到檔案中,例如 client-cert.pem。請勿複製引號本身。

REST v1beta4

  1. 列出執行個體上的憑證,取得您要擷取之憑證的指紋:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    記錄要擷取的憑證的 sha1Fingerprint 欄位。請勿加上引號。

  2. 擷取憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID
    • sha1FingerPrint:憑證的 sha1FingerPrint

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  3. 將所有包含引號的憑證資料複製到檔案中,例如 client-cert.pem。請勿複製引號本身。

刪除用戶端憑證

刪除用戶端憑證後,資料庫伺服器會更新,但不需要重新啟動。

主控台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 選取「安全性」分頁標籤。
  5. 在「管理用戶端憑證」中,找出要刪除的憑證,然後按一下 。
  6. 在「Delete client certificate」窗格中,按一下「OK」

gcloud

使用 ssl client-certs delete 指令刪除用戶端憑證:

gcloud sql ssl client-certs delete CERT_NAME \
--instance=INSTANCE_NAME

REST v1

  1. 列出執行個體上的憑證,取得您要刪除之憑證的指紋:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    記下要刪除的憑證的 sha1Fingerprint 欄位。請勿加上引號。

  2. 刪除憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID
    • sha1FingerPrint:憑證的 sha1FingerPrint

    HTTP 方法和網址:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

REST v1beta4

  1. 列出執行個體上的憑證,取得您要刪除之憑證的指紋:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    記下要刪除的憑證的 sha1Fingerprint 欄位。請勿加上引號。

  2. 刪除憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID
    • sha1FingerPrint:憑證的 sha1FingerPrint

    HTTP 方法和網址:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

管理伺服器 CA 憑證 (每個例項 CA)

本節說明如何管理 Cloud SQL 在內部建立的伺服器 CA 憑證。這是 Cloud SQL 中的預設伺服器 CA 模式。在這個憑證授權單位階層中,Cloud SQL 會為每個執行個體建立伺服器 CA。

輪替伺服器 CA 憑證

如果您收到憑證即將到期的通知,或是想要啟動輪替作業,請按照下列步驟完成輪替作業。開始輪替前,您必須在執行個體上建立新的伺服器 CA。如果已建立新的伺服器 CA,請略過下列程序的第一個步驟。

  1. 建立新的伺服器 CA。
  2. 下載新的伺服器 CA 憑證資訊。
  3. 更新用戶端以使用新的伺服器 CA 憑證資訊。
  4. 完成輪替,這樣會將使用中的憑證移至「上一個」運算單元,並將新增的憑證更新為使用中的憑證。

控制台

將新的伺服器 CA 憑證下載至本機環境,並以 PEM 檔案格式進行編碼:

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 選取「安全性」分頁標籤。
  5. 按一下「管理憑證」展開。
  6. 選取「Rotate CA certificate」

    如果沒有符合資格的憑證,就無法使用輪替選項。您必須建立新的伺服器 CA 憑證

  7. 按一下「下載憑證」

將下載的檔案複製到用戶端主機,取代現有的 server-ca.pem 檔案,藉此更新所有 PostgreSQL 用戶端,以便使用新資訊。

當您更新完用戶端之後,完成輪替:

  1. 返回「安全性」分頁。
  2. 按一下「管理憑證」展開。
  3. 選取「Rotate CA certificate」
  4. 確認您的用戶端正確連線。
  5. 如果有任何用戶端未使用剛輪替的憑證進行連線,您可以選取「Rollback CA certificate」復原先前的設定。

gcloud

  1. 建立伺服器 CA 憑證:
    gcloud sql ssl server-ca-certs create \
    --instance=INSTANCE
  2. 將憑證資訊下載至本機 PEM 檔案:
    gcloud sql ssl server-ca-certs list \
    --format="value(cert)" \
    --instance=INSTANCE_NAME > \
    FILE_PATH/FILE_NAME.pem
  3. 將下載的檔案複製到用戶端主機,取代現有的 server-ca.pem 檔案,即可更新所有用戶端以使用新資訊。
  4. 當您更新完用戶端之後,完成輪替:
    gcloud sql ssl server-ca-certs rotate \
    --instance=INSTANCE_NAME
          
  5. 確認您的用戶端正確連線。
  6. 如果有任何用戶端未使用剛輪替的憑證進行連線,您可以復原到先前的設定。

REST v1

  1. 下載伺服器 CA 憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 完成旋轉作業:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

REST v1beta4

  1. 下載伺服器 CA 憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 完成旋轉作業:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

如果您在嘗試旋轉標示為 No upcoming/previous Server CA Certificate exists 的憑證時收到錯誤訊息,請確認您是在使用個別例項 CA 階層的例項上執行指令。您可以使用 gcloud sql instances describe 指令,查看 Cloud SQL 執行個體已設定哪些 CA 階層。詳情請參閱「查看執行個體資訊」。

復原憑證輪替作業

當您完成憑證輪替之後,您的用戶端必須全都使用新憑證來連線至 Cloud SQL 執行個體。如果用戶端未正確更新為使用新憑證資訊,就無法使用 SSL/TLS 連線至您的執行個體。如果發生這種情況,您可以回復先前的憑證設定。

回溯作業會將有效憑證移至「即將推出」的運算單元 (取代任何「即將推出」的憑證)。「上一個」憑證會成為有效憑證,將憑證設定還原為輪替前狀態。

復原至上一個憑證設定:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 選取「安全性」分頁標籤。
  5. 按一下「管理憑證」展開。
  6. 選取「復原 CA 憑證」

    如果沒有符合資格的憑證,就無法使用復原選項。否則,回溯動作會在幾秒後完成。

gcloud

gcloud sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. 下載伺服器 CA 憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 複製要回溯至的版本的 sha1Fingerprint 欄位。

    找出 createTime 值比 sha1Fingerprint 值早的版本,並將其顯示為 activeVersion

  3. 復原旋轉作業:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    JSON 要求主體:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

REST v1beta4

  1. 下載伺服器 CA 憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 複製要回溯至的版本的 sha1Fingerprint 欄位。

    找出 createTime 值比 sha1Fingerprint 值早的版本,並將其顯示為 activeVersion

  3. 復原旋轉作業:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    JSON 要求主體:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

如果您在嘗試回溯憑證 CA 輪替作業時收到錯誤訊息,請確認您是在使用個別例項 CA 階層的例項上執行指令。No upcoming/previous Server CA Certificate exists您可以使用 gcloud sql instances describe 指令,查看 Cloud SQL 執行個體已設定哪些 CA 階層。詳情請參閱「查看執行個體資訊」。

啟動旋轉

您不必等待 Cloud SQL 傳送的電子郵件,即可開始輪替。您隨時可以開始進行。當您開始輪替時,會建立新憑證,並將它放進「接下來的」運算單元中。如果在您提出要求時,憑證已出現在「即將到期」的時間範圍內,系統就會刪除該憑證。只能有一個即將到期的證照。

開始輪替:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 選取「安全性」分頁標籤。
  5. 按一下「管理憑證」展開。
  6. 按一下「建立新的 CA 憑證」
  7. 選取「Rotate CA certificate」

    如果沒有符合資格的憑證,就無法使用輪替選項。

  8. 按照「輪替伺服器 CA 憑證」的說明,完成輪替。

gcloud

  1. 啟動輪替:
    gcloud sql ssl server-ca-certs create \
    --instance=INSTANCE_NAME
         
  2. 按照「輪替伺服器 CA 憑證」的說明,完成輪替。

REST v1

  1. 使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 按照「輪替伺服器 CA 憑證」的說明,完成輪替。

REST v1beta4

  1. 使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 按照「輪替伺服器 CA 憑證」的說明,完成輪替。

取得伺服器 CA 憑證的相關資訊

您可以取得伺服器 CA 憑證的相關資訊,例如憑證到期日或提供的加密等級。

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 選取「安全性」分頁標籤。

    在「管理伺服器 CA 憑證」中,您可以在表格中查看伺服器 CA 憑證的到期日。

    如要查看憑證類型,請使用 gcloud sql ssl server-ca-certs list --instance=INSTANCE_NAME 指令。

gcloud

gcloud sql ssl server-ca-certs list \
--instance=INSTANCE_NAME

REST v1

描述執行個體時,您可以查看伺服器 CA 憑證的詳細資料:

使用任何要求資料之前,請先替換以下項目:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=serverCaCert

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

REST v1beta4

描述執行個體時,您可以查看伺服器 CA 憑證的詳細資料:

使用任何要求資料之前,請先替換以下項目:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=serverCaCert

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

查看 CA 憑證的內容

您可以使用 openssl storeutl 查看 CA 憑證的內容。

執行 sql ssl server-ca-certs list 指令時,您可能會從先前的輪替相關作業取得多個 CA 憑證。

gcloud

  1. 請執行下列指令:
    gcloud sql ssl server-ca-certs list \
      --instance=INSTANCE_NAME \
      --format='value(cert)' > temp_cert.pem

    INSTANCE_NAME 替換為執行個體名稱。

  2. 使用 openssl 檢查 CA 憑證的內容。
  3. openssl storeutl -noout -text temp_cert.pem
       

查看伺服器憑證的內容

您可以使用 openssl s_client 查看伺服器憑證的內容。

gcloud

如要查看伺服器憑證內容,請執行下列指令:

openssl s_client -starttls postgres -connect INSTANCE_IP_ADDRESS:5432

INSTANCE_IP_ADDRESS 替換為執行個體的 IP 位址。

管理伺服器憑證 (共用 CA)

本節說明如何在使用共用 CA 或客戶管理 CA 的執行個體上管理伺服器憑證。

您可以在建立執行個體時,為 serverCaMode 設定 (Cloud SQL Admin API) 或 --server-ca-mode 旗標 (gcloud CLI) 指定 GOOGLE_MANAGED_CAS_CA,即可選擇使用共用 CA 做為執行個體的伺服器 CA 模式。

如要將客戶管理的 CA 用於執行個體的伺服器 CA 模式,您必須在建立執行個體時,為 serverCaMode 設定 (Cloud SQL 管理員 API) 指定 CUSTOMER_MANAGED_CAS_CA,或為 --server-ca-mode 旗標 (gcloud CLI) 指定 --server-ca-mode,且必須擁有有效的 CA 集區和 CA。詳情請參閱「使用客戶代管 CA」。

輪替伺服器憑證

如果您收到伺服器憑證即將到期的通知,或是想要啟動輪替作業,請按照下列步驟完成輪替作業。開始輪替前,您必須為即將輪替的憑證建立新的伺服器憑證。如果已為即將輪替的憑證建立新的伺服器憑證,請略過下列程序的第一個步驟。

如要在執行個體上輪替伺服器憑證,請執行下列步驟:

  1. 如果您需要新的伺服器憑證,請建立

  2. 如果您的用戶端已信任根 CA,則可選擇略過這個步驟。不過,如果您需要更新用戶端的伺服器 CA 資訊,請按照下列步驟操作:

    1. 下載最新的伺服器 CA 資訊。
    2. 更新用戶端以使用最新的伺服器 CA 資訊。
  3. 將有效憑證移至上一個運算單元,並將新憑證更新為有效憑證,即可完成輪替。

控制台

將以 PEM 檔案編碼的伺服器 CA 憑證資訊下載至本機環境:

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 選取「安全性」分頁標籤。
  5. 按一下「管理憑證」展開。
  6. 確認「Rotate server certificate」選項是否顯示為可用選項,但請勿立即選取。

    如果沒有符合資格的憑證,就無法使用輪替選項。您必須建立新的伺服器憑證

  7. 按一下「下載憑證」

將下載的檔案複製到用戶端主機,取代現有的 server-ca.pem 檔案,藉此更新所有 PostgreSQL 用戶端,以便使用新資訊。

當您更新完用戶端之後,完成輪替:

  1. 返回「安全性」分頁。
  2. 按一下「管理憑證」展開。
  3. 選取「Rotate certificate」(輪替憑證)
  4. 在「Confirm certificate rotation」對話方塊中,按一下「Rotate」
  5. 確認您的用戶端正確連線。

    如果有任何用戶端未使用剛輪替的憑證進行連線,您可以選取「Rollback certificate」復原先前的設定。

gcloud

  1. 如要建立伺服器憑證,請使用下列指令:
    gcloud sql ssl server-certs create \
    --instance=INSTANCE
  2. INSTANCE 替換為執行個體名稱。
  3. 請確認您使用的是最新的 CA 套件。 如果您未使用最新的 CA 套件,請執行下列指令,將執行個體的最新伺服器 CA 資訊下載至本機 PEM 檔案:
    gcloud sql ssl server-certs list \
    --format="value(ca_cert.cert)" \
    --instance=INSTANCE_NAME > \
    FILE_PATH/server-ca.pem

    或者,您也可以從本頁的根 CA 和區域 CA 憑證組合表下載 CA 組合。

    接著,將下載的檔案複製到用戶端主機,取代現有的 server-ca.pem 檔案,藉此更新所有用戶端,以便使用新的伺服器 CA 資訊。

  4. 更新所有用戶端 (如果需要更新用戶端) 後,請完成輪替:
    gcloud sql ssl server-certs rotate \
    --instance=INSTANCE_NAME
          
  5. 確認您的用戶端正確連線。

    如果有任何用戶端未使用剛輪替的伺服器憑證進行連線,請復原先前的設定。

REST v1

  1. 建立伺服器憑證。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addServerCertificate

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 如需下載伺服器 CA 憑證資訊,請使用下列指令。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  3. 完成旋轉。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

REST v1beta4

  1. 建立伺服器憑證。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addServerCertificate

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 如需下載伺服器 CA 憑證資訊,請使用下列指令。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  3. 完成旋轉。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

復原憑證輪替

完成伺服器憑證輪替後,所有用戶端都必須使用新憑證連線至 Cloud SQL 執行個體。如果用戶端未正確更新為使用新憑證資訊,就無法使用 SSL/TLS 連線至您的執行個體。如果發生這種情況,您可以回復先前的憑證設定。

回溯作業會將有效憑證移至「即將推出」的運算單元,取代任何「即將推出」的憑證。「上一個」憑證會成為有效憑證,並將憑證設定還原至輪替前狀態。

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 選取「安全性」分頁標籤。
  5. 按一下「管理憑證」展開。
  6. 選取「復原伺服器憑證」

    如果沒有符合資格的憑證,就無法使用復原選項。

  7. 在「Confirm certificate rollback」對話方塊中,選取「Rollback」

    回溯可能需要幾秒鐘才能完成。

gcloud

gcloud sql ssl server-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. 列出伺服器憑證。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 複製要回溯至的版本的 sha1Fingerprint 欄位。

    找出 createTime 值比 sha1Fingerprint 值早出現的版本,該版本會顯示為 activeVersion

  3. 回復旋轉。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    JSON 要求主體:

    {
      "rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

REST v1beta4

  1. 列出伺服器憑證。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 複製要回溯至的版本的 sha1Fingerprint 欄位。

    找出 createTime 值比 sha1Fingerprint 值早出現的版本,該版本會顯示為 activeVersion

  3. 回復旋轉。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    JSON 要求主體:

    {
      "rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

查看 CA 憑證的內容

您可以使用 openssl storeutl 公用程式查看 CA 憑證的內容。

執行 sql ssl server-certs list 指令時,由於信任鏈結,您一律會取得多個 CA 憑證。您也可能會從先前的輪替相關作業中取得多個 CA 憑證。

gcloud

  1. 請執行下列指令:
    gcloud sql ssl server-certs list \
      --instance=INSTANCE_NAME \
      --format='value(cert)' > temp_cert.pem

    INSTANCE_NAME 替換為執行個體名稱。

  2. 使用 openssl 檢查 CA 憑證的內容。
  3. openssl storeutl -noout -text temp_cert.pem
       

查看伺服器憑證的內容

您可以使用 openssl 公用程式和 sql ssl server-certs list 指令查看伺服器憑證的內容。

執行 gcloud CLI 指令時,由於信任鏈,您一律會取得多個 CA 憑證。您也可能會從先前的旋轉相關作業中取得多個 CA 憑證。

gcloud

只使用 openssl s_client

openssl s_client -starttls postgres -connect INSTANCE_IP_ADDRESS:5432

INSTANCE_IP_ADDRESS 替換為執行個體的 IP 位址。

使用 gcloud CLIopenssl storeutl

  1. 請執行下列指令:
    gcloud sql ssl server-certs list \
      --instance=INSTANCE_NAME \
      --format='value(ssl_cert.cert)' > temp_cert.pem

    INSTANCE_NAME 替換為執行個體名稱。

  2. 使用 openssl 檢查伺服器憑證的內容。
  3. openssl storeutl -noout -text temp_cert.pem
       

下載共用 CA 的根 CA 和區域 CA 憑證組合

如果您使用 Google 代管的共用 CA 設定,可以從下表下載根 CA 和區域 CA 憑證套件。

這些憑證套件不適用於使用個別執行個體或客戶管理的 CA 選項的執行個體。

地區名稱 位置 憑證組合
全球
所有區域的 CA 所有位置 global.pem
亞洲
asia-east1 台灣 asia-east1.pem
asia-east2 香港 asia-east2.pem
asia-northeast1 東京 asia-northeast1.pem
asia-northeast2 大阪 asia-northeast2.pem
asia-northeast3 首爾 asia-northeast3.pem
asia-south1 孟買 asia-south1.pem
asia-south2 德里 asia-south2.pem
asia-southeast1 新加坡 asia-southeast1.pem
asia-southeast2 雅加達 asia-southeast2.pem
非洲
africa-south1 約翰尼斯堡 africa-south1.pem
澳洲
australia-southeast1 雪梨 australia-southeast1.pem
australia-southeast2 墨爾本 australia-southeast2.pem
歐洲
europe-central2 華沙 europe-central2.pem
europe-north1 芬蘭 europe-north1.pem
europe-north2 斯德哥爾摩 europe-north2.pem
europe-southwest1 馬德里 europe-southwest1.pem
europe-west1 比利時 europe-west1.pem
europe-west2 倫敦 europe-west2.pem
europe-west3 法蘭克福 europe-west3.pem
europe-west4 荷蘭 europe-west4.pem
europe-west6 蘇黎世 europe-west6.pem
europe-west8 米蘭 europe-west8.pem
europe-west9 巴黎 europe-west9.pem
europe-west10 柏林 europe-west10.pem
europe-west12 杜林 europe-west12.pem
中東地區
me-central1 杜哈 me-central1.pem
me-central2 達曼 me-central2.pem
me-west1 特拉維夫市 me-west1.pem
北美洲
northamerica-northeast1 蒙特婁 northamerica-northeast1.pem
northamerica-northeast2 多倫多 northamerica-northeast2.pem
northamerica-south1 墨西哥 northamerica-south1.pem
us-central1 愛荷華州 us-central1.pem
us-east1 南卡羅來納州 us-east1.pem
us-east4 北維吉尼亞州 us-east4.pem
us-east5 哥倫布 us-east5.pem
us-south1 達拉斯 us-south1.pem
us-west1 奧勒岡州 us-west1.pem
us-west2 洛杉磯 us-west2.pem
us-west3 鹽湖城 us-west3.pem
us-west4 拉斯維加斯 us-west4.pem
南美洲
southamerica-east1 聖保羅 southamerica-east1.pem
southamerica-west1 聖地亞哥 southamerica-west1.pem

重設安全資料傳輸層 (SSL)/傳輸層安全標準 (TLS) 設定

您可以完全重設 SSL/TLS 設定。

主控台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「Connections」
  4. 前往「重設安全資料傳輸層 (SSL) 的設定」部分。
  5. 按一下「Reset SSL Configuration」

gcloud

  1. 重新整理憑證:

    gcloud sql instances reset-ssl-config INSTANCE_NAME
  2. 建立新的用戶端憑證

REST v1beta4

  1. 重新整理憑證:

    使用任何要求資料之前,請先替換以下項目:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/resetSslConfig

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

  2. 建立新的用戶端憑證

後續步驟