Google Cloud CLI を使用して証明書を発行する
このページでは、Google Cloud CLI を使用して認証局(CA)プールを作成し、証明書を発行する方法について説明します。
CA Service を使用すると、インフラストラクチャを管理することなく、プライベート CA をデプロイして管理できます。
準備
Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。
gcloud init
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_ID
は、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_ID
は、実際の Google Cloud プロジェクト名に置き換えます。
-
Certificate Authority Service API を有効にします。
gcloud services enable privateca.googleapis.com
このクイックスタートの
gcloud
コマンドで使用するデフォルトのロケーションを構成します。gcloud config set privateca/location LOCATION
CA プールや CA などの CA Service のリソースは、単一の Google Cloud のロケーションに存在します。これらのリソースを作成した後は変更できません。
CA プールを作成します
認証局(CA)プールは、複数の CA のコレクションです。CA プールを使用すると、ワークロードの停止やダウンタイムなしに信頼チェーンをローテーションできます。
Enterprise ティアで CA プールを作成するには、次のコマンドを実行します。
gcloud privateca pools create POOL_ID --tier "enterprise"
POOL_ID は、CA プールの名前に置き換えます。
すべての CA Service リソースの名前には、使用可能な文字(すべての文字、数字、ハイフン、アンダースコア)のみを含める必要があります。 名前の最大長は 63 文字です。
ルート CA を作成する
CA プールは、作成時に空です。CA プールから証明書をリクエストするには、CA プールに CA を追加する必要があります。
ルート CA を作成して作成した CA プールに追加するには、次のコマンドを実行します。
gcloud privateca roots create CA_ID --pool POOL_ID --subject "CN=Example Prod Root CA, O=Google"
次のように置き換えます。
- CA_ID: ルート CA の名前。
- POOL_ID: CA プールの名前。
CA Service は、ルート CA の作成時に次のコマンドを返します。
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
gcloud CLI からプロンプトが表示されたら、「y
」と入力してルート CA を有効にします。
これでルート CA を持つ CA プールが作成されたので、証明書の作成に進むことができます。
証明書を生成
新しく作成した CA を使用して証明書を作成するには、次の手順を行います。
pip
コマンドを使用して Pyca 暗号ライブラリをインストールします。pip install --user "cryptography>=2.2.0"
CA Service は、Pyca 暗号ライブラリを使用して、ローカルマシンに新しい非対称鍵ペアを生成して保存します。この鍵が CA Service に送信されることはありません。
Google Cloud SDK で Pyca 暗号ライブラリを使用できるようにするには、サイト パッケージを有効にする必要があります。
macOS または Linux
export CLOUDSDK_PYTHON_SITEPACKAGES=1
ウィンドウ
set CLOUDSDK_PYTHON_SITEPACKAGES=1
証明書を作成します。
gcloud privateca certificates create \ --issuer-pool POOL_ID \ --subject "CN=Example Prod,O=Google" \ --generate-key \ --key-output-file=./key \ --cert-output-file=./cert.pem
POOL_ID は、作成した CA プールのリソース ID に置き換えます。
CA Service から次のレスポンスが返されます。
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
クリーンアップ
CA プール、CA、このクイックスタート用に作成したプロジェクトを削除してクリーンアップします。
証明書を取り消します。
- CERT_NAME: 取り消す証明書の名前。
- POOL_ID: 証明書を発行した CA プールの名前。
証明書を取り消すには、次のコマンドを実行します。
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID
次のように置き換えます。
CA を削除します。
CA は、CA が発行したすべての証明書を取り消した場合にのみ削除できます。
CA を無効にします。
gcloud privateca roots disable CA_ID --pool=POOL_ID
次のように置き換えます。
- CA_ID: CA のリソース ID。
- POOL_ID: CA プールのリソース ID。
CA を削除します。
gcloud privateca roots delete CA_ID --pool=POOL_ID
CA の状態が
Deleted
に変わります。CA Service は、削除を開始してから 30 日後に CA を完全に削除します。CA プールを削除します。
CA プールを削除できるのは、CA プール内の CA が完全に削除された後のみです。
gcloud privateca pools delete POOL_ID
プロジェクトを削除する。
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
次のステップ
- CA プールの詳細について学習する。
- CA プールの作成の詳細について学習する。
- CA の作成の詳細について学習する。
- 証明書のリクエストの詳細について学習する。
- CA プールが発行できる証明書の種類を制御する方法を学習する。