使用 Google Cloud CLI 簽發憑證
本頁說明如何使用 Google Cloud CLI,透過 Certificate Authority 服務產生或核發憑證。
透過 CA Service,您不必管理基礎架構,即可部署及管理私人 CA。
事前準備
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
Enable the Certificate Authority Service API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable privateca.googleapis.com
Verify that billing is enabled for your Google Cloud project.
設定預設位置,以便在本快速入門導覽中搭配
gcloud
指令使用。gcloud config set privateca/location LOCATION
CA 服務資源 (例如 CA 集區和 CA) 位於單一Google Cloud 位置,建立這些資源後就無法變更。
建立憑證授權單位集區
憑證授權單位 (CA) 集區內含多個 CA。CA 集區提供信任鏈結輪替功能,而且可在無任何工作負載服務中斷或停機情形的情況下輪替鏈結。
如要在 Enterprise 層級中建立 CA 集區,請執行下列指令:
gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"
更改下列內容:
- POOL_ID:CA 集區的名稱。
- LOCATION:CA 集區的位置。如需完整的位置清單,請參閱「位置」。
所有 CA 服務資源的名稱只能包含允許的字元,也就是所有字母、數字、連字號和底線。名稱長度上限為 63 個字元。
建立根 CA
建立 CA 集區時,集區中不會有任何內容。如要向 CA 集區要求憑證,您必須在其中新增 CA。
如要建立根 CA 並新增至您建立的 CA 集區,請執行下列指令:
gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA, O=Google"
更改下列內容:
- CA_ID:根 CA 的名稱。
- POOL_ID:CA 集區的名稱。
- LOCATION:CA 集區的位置。如需完整的位置清單,請參閱「位置」。
CA 服務建立根 CA 時,會傳回下列指令:
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
在 gcloud CLI 提示時輸入 y
,啟用根 CA。
選用步驟:建立從屬 CA 集區
如要建立下層 CA 集區,請執行下列指令:
gcloud privateca pools create SUBORDINATE_POOL_ID
--location LOCATION
--tier TIER
更改下列內容:
- SUBORDINATE_POOL_ID:下層 CA 集區的 ID。
- LOCATION:從屬 CA 集區的位置。 如需完整地點清單,請參閱「地點」。
- TIER:從屬 CA 層級,可以是 DevOps 或企業。
選用:建立由 Google Cloud中儲存的根 CA 簽署的從屬 CA
如要在上一步建立的下層 CA 集區中建立下層 CA,請執行下列指令:
gcloud privateca subordinates create SUBORDINATE_CA_ID \
--location=LOCATION \
--pool=SUBORDINATE_POOL_ID \
--issuer-pool=POOL_ID \
--issuer-location=ISSUER_LOCATION \
--from-ca=EXISTING_CA_ID \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION \"
更改下列內容:
- SUBORDINATE_CA_ID:從屬 CA 的 ID。
- LOCATION:從屬 CA 的位置。如需完整的位置清單,請參閱「位置」。
- SUBORDINATE_POOL_ID:您在上一節中建立的下層 CA 集區 ID。
- POOL_ID:上層 CA 集區的 ID。
- ISSUER_LOCATION:憑證位置。
- EXISTING_CA_ID:來源 CA 的 ID。
- PROJECT_ID:專案 ID。
- LOCATION_ID:金鑰環的位置。
- KEY_RING:金鑰所屬金鑰環的名稱。
- KEY:金鑰名稱。
- KEY_VERSION:金鑰版本。
建立從屬 CA 時,系統會傳回下列陳述式。
Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID].
在 gcloud CLI 提示時輸入 y
,啟用從屬 CA。
建立憑證
如要使用新建立的 CA 建立憑證,請按照下列步驟操作:
使用
pip
指令安裝 Pyca 密碼編譯程式庫。pip install --user "cryptography>=2.2.0"
CA 服務會使用 Pyca 密碼編譯程式庫,在本機產生及儲存新的非對稱金鑰配對。這個金鑰絕不會傳送至 CA 服務。
如要允許 Google Cloud SDK 使用 Pyca 密碼編譯程式庫,您必須啟用網站套件。
macOS 或 Linux
export CLOUDSDK_PYTHON_SITEPACKAGES=1
Windows
set CLOUDSDK_PYTHON_SITEPACKAGES=1
建立憑證。
gcloud privateca certificates create \ --issuer-pool POOL_ID \ --issuer-location ISSUER_LOCATION \ --subject "CN=Example Prod,O=Google" \ --generate-key \ --key-output-file=./key \ --cert-output-file=./cert.pem
更改下列內容:
- POOL_ID:您建立的 CA 集區資源 ID。
- ISSUER_LOCATION:核發數位憑證的憑證授權單位位置。
CA 服務會傳回下列回應:
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
清除所用資源
如要清除所用資源,請刪除您在本快速入門導覽課程中建立的 CA 集區、CA 和專案。
撤銷憑證。
- CERT_NAME:要撤銷的憑證名稱。
- POOL_ID:核發憑證的 CA 集區名稱。
- LOCATION:CA 集區的位置。
如要撤銷憑證,請執行下列指令:
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location LOCATION
取代下列項目:
刪除 CA。
您必須先撤銷 CA 核發的所有憑證,才能刪除該 CA。
停用 CA。
gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATION
更改下列內容:
- CA_ID:CA 的資源 ID。
- POOL_ID:CA 集區的資源 ID。
- LOCATION:CA 集區的位置。如需完整的位置清單,請參閱「位置」。
刪除 CA。
gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
CA 狀態會變更為
Deleted
。發起刪除作業後,憑證授權單位服務會在 30 天後永久刪除憑證授權單位。刪除 CA 集區。
只有在永久刪除 CA 集區中的 CA 後,才能刪除該集區。
gcloud privateca pools delete POOL_ID --location=LOCATION
刪除專案。
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
後續步驟
- 進一步瞭解 CA 集區。
- 進一步瞭解如何建立 CA 集區。
- 進一步瞭解如何建立 CA。
- 進一步瞭解如何申請認證。
- 瞭解如何控管 CA 集區可核發的憑證類型。