証明書を管理

このページでは、Certificate Manager を使用して、Transport Layer Security(TLS)(SSL)証明書を作成および管理する方法について説明します。Certificate Manager は、次の種類の TLS(SSL)証明書をサポートしています。

  • Google マネージド証明書は、Google Cloud がお客様に代わり取得して管理する証明書です。 Certificate Manager を使用して、次のタイプの Google マネージド証明書を作成できます。
    • グローバル証明書
      • ロードバランサ認証を使用した Google マネージド証明書
      • DNS 認証を使用した Google マネージド証明書
      • Certificate Authority Service(CA Service)を使用した Google マネージド証明書
    • リージョン証明書
      • リージョンの Google マネージド証明書
      • CA Service を使用したリージョン Google マネージド証明書
  • セルフマネージド SSL 証明書は、ご自分で取得、プロビジョニング、更新する証明書です。

証明書の詳細については、Certificate Manager の仕組みをご覧ください。

Certificate Manager を使用して証明書をデプロイする方法については、デプロイの概要をご覧ください。

このページで使用されている gcloud CLI コマンドの詳細については、Certificate Manager CLI リファレンスをご覧ください。

ロードバランサの承認で Google マネージド証明書を作成する

ロードバランサの承認で Google マネージド証明書を作成するには、このセクションの手順を行います。global ロケーションでロードバランサの承認を使用して Google マネージド証明書を作成できます。

証明書に複数のドメイン名を指定するには、証明書のターゲット ドメイン名のカンマ区切りのリストを指定します。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. 表示されたページで [証明書] タブを選択します。

  3. [証明書を追加] をクリックします。

  4. 証明書の名前を入力します。

    この名前は、プロジェクト内で一意にする必要があります。

  5. 省略可: 証明書の説明を入力します。この説明は、後で特定の証明書を特定するのに役立ちます。

  6. [ロケーション] で [グローバル] を選択します。

  7. [範囲] で [デフォルト] を選択します。

  8. [証明書の種類] で [Google マネージド証明書を作成する] を選択します。

  9. [認証局の種類] で [パブリック] を選択します。

  10. 証明書のドメイン名を指定します。移行先ドメインのカンマ区切りリストを入力します。また、各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。

  11. [認証タイプ] で [ロードバランサ認証] を選択します。

  12. 証明書に関連付けるラベルを指定します。必要に応じて、複数のラベルを追加できます。ラベルを追加するには、[ ラベルの追加] ボタンをクリックして、ラベルの keyvalue を指定します。

  13. [作成] をクリックします。新しい証明書が証明書のリストに表示されることを確認します。

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES"

次のように置き換えます。

  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • DOMAIN_NAMES: この証明書のターゲット ドメインのカンマ区切りのリスト。各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。

Terraform

Google マネージド証明書を作成するには、managed ブロックで google_certificate_manager_certificate リソースを使用します。

resource "google_certificate_manager_certificate" "default" {
  name        = "prefixname-rootcert-${random_id.default.hex}"
  description = "Google-managed cert"
  managed {
    domains = ["example.me"]
  }
  labels = {
    "terraform" : true
  }
}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

API

次のように certificates.create メソッドに POST リクエストを送信して証明書を作成します。

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
 }
}

次のように置き換えます。

  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • DOMAIN_NAME: この証明書のターゲット ドメイン。ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。

証明書のデプロイ プロセスの概要については、デプロイの概要をご覧ください。

DNS 認証を使用して Google マネージド証明書を作成する

DNS 認証を使用してグローバル Google マネージド証明書を作成するには、次の手順を行います。

  1. 対応する DNS 認証を作成して、証明書の対象となる各ドメイン名を参照します。手順については、DNS 認証の作成をご覧ください。
  2. ターゲット ドメインの DNS ゾーンで、検証サブドメイン用に有効な CNAME レコードを構成します。手順については、DNS 構成への CNAME レコードの追加をご覧ください。
  3. このセクションの手順を完了します。

regionalglobal の両方の Google マネージド証明書を作成できます。regional Google マネージド証明書の作成方法については、リージョン Google マネージド証明書を作成するをご覧ください。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. 表示されたページで [証明書] タブを選択します。

  3. [証明書を追加] をクリックします。

  4. 証明書の名前を入力します。

    この名前は、プロジェクト内で一意にする必要があります。

  5. 省略可: 証明書の説明を入力します。この説明は、後で特定の証明書を特定するのに役立ちます。

  6. [ロケーション] で [グローバル] を選択します。

  7. [範囲] で [デフォルト] を選択します。

  8. [証明書の種類] で [Google マネージド証明書を作成する] を選択します。

  9. [認証局の種類] で [パブリック] を選択します。

  10. 証明書のドメイン名を指定します。移行先ドメインのカンマ区切りリストを入力します。また、各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。

  11. [認証タイプ] で [DNS 認証] を選択します。ドメイン名に DNS 認証が関連付けられている場合は、自動的に取得されます。ドメイン名に DNS 認証が関連付けられていない場合は、次の操作を行います。

    1. [見つからない DNS 認証の作成] をクリックして [DNS 認証の作成] ダイアログを表示します。
    2. [DNS Authorization Name] フィールドに DNS 認証名を指定します。
    3. [DNS 認証の作成] をクリックします。DNS 名がドメイン名に関連付けられることを確認します。
  12. 証明書に関連付けるラベルを指定します。必要に応じて、複数のラベルを追加できます。ラベルを追加するには、[ ラベルの追加] ボタンをクリックして、ラベルの keyvalue を指定します。

  13. [作成] をクリックします。新しい証明書が証明書のリストに表示されることを確認します。

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --dns-authorizations="AUTHORIZATION_NAMES"

次のように置き換えます。

  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • DOMAIN_NAMES: この証明書のターゲット ドメインのカンマ区切りのリスト。各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • AUTHORIZATION_NAMES: この証明書に対して作成した DNS 認証の名前のカンマ区切りリスト。

ワイルドカード ドメイン名を使用して Google マネージド証明書を作成するには、次のコマンドを使用します。ワイルドカード ドメイン名証明書は、特定のドメインのすべての第 1 レベル サブドメインに対応します。

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="*.DOMAIN_NAME,DOMAIN_NAME" \
    --dns-authorizations=AUTHORIZATION_NAME

次のように置き換えます。

  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • DOMAIN_NAME: この証明書のターゲット ドメイン。先頭にアスタリスク(*.)を付けると、ワイルドカード証明書になります。ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • AUTHORIZATION_NAME: この証明書用に作成した DNS 承認の名前。

Terraform

DNS 認証を使用して Google マネージド証明書を作成するには、managed ブロックで dns_authorizations 属性を指定した google_certificate_manager_certificate リソースを使用します。

resource "google_certificate_manager_certificate" "root_cert" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "The wildcard cert"
  managed {
    domains = [local.domain, "*.${local.domain}"]
    dns_authorizations = [
      google_certificate_manager_dns_authorization.default.id
    ]
  }
  labels = {
    "terraform" : true
  }
}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

API

次のように certificates.create メソッドに POST リクエストを送信して証明書を作成します。

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "dnsAuthorizations": [
   "projects/PROJECT_ID/locations/global/dnsAuthorizations/AUTHORIZATION_NAME",
  ],
 }
}

次のように置き換えます。

  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • DOMAIN_NAME: この証明書のターゲット ドメイン。アスタリスクの接頭辞(*.)はワイルドカード証明書であることを示します。ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • AUTHORIZATION_NAME: この証明書用に作成した DNS 認証の名前。

複数のプロジェクトで証明書を個別に管理するには、プロジェクトごとの DNS 認証(プレビュー)を使用します。プロジェクトごとの DNS 認証を使用して証明書を作成する方法については、DNS 認証の作成をご覧ください。

証明書のデプロイ プロセスの概要については、デプロイの概要をご覧ください。

CA Service によって発行された Google マネージド証明書を作成する

管理している CA Service インスタンスによって発行された Google マネージド証明書を作成するには、このセクションの手順を行います。regionalglobal の両方の Google マネージド証明書を作成できます。CA Service によって発行されたリージョン Google マネージド証明書の作成方法については、CA Service によって発行されたリージョン Google マネージド証明書を作成するをご覧ください。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のロールが必要です。

このセクションで使用される gcloud CLI コマンドの詳細については、Certificate Manager CLI リファレンスをご覧ください。

CA Service と Certificate Manager の統合を構成する

まだ行っていない場合は、このセクションの説明に従って、CA サービス と統合するように Certificate Manager を構成する必要があります。証明書の発行ポリシーがターゲット CA プールで有効になっている場合、証明書のプロビジョニングが次のいずれかの理由で失敗することがあります。

  • 証明書発行ポリシーによって、要求された証明書がブロックされている。この場合、証明書は発行されていないため、請求は発生しません。
  • このポリシーで、Certificate Manager でサポートされていない証明書に対する変更が適用されている。この場合、Certificate Manager との完全な互換性がない場合でも、証明書が発行されているため、引き続き請求されます。

発行ポリシーの制限に関連する問題については、トラブルシューティングのページをご覧ください。

CA Service と Certificate Manager の統合を構成するには、次の手順を行います。

  • Certificate Manager に、ターゲット CA プールから証明書をリクエストする機能を付与します。
    1. 次のコマンドを使用して、ターゲットの Google Cloud プロジェクトに Certificate Manager サービス アカウントを作成します。
     gcloud beta services identity create --service=certificatemanager.googleapis.com \
        --project=PROJECT_ID
     

    PROJECT_ID は、ターゲット Google Cloud プロジェクトの ID に置き換えます。

    このコマンドは、作成されたサービス アカウントの名前を返します。次に例を示します。

    service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com

    1. Certificate Manager サービス アカウントに、次のようにターゲット CA プール内の証明書リクエスト元ロールを付与します。
     gcloud privateca pools add-iam-policy-binding CA_POOL \
        --location REGION \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role roles/privateca.certificateRequester
     

    次のように置き換えます。

    • CA_POOL: ターゲット CA プールの ID。
    • REGION: ターゲットの Google Cloud リージョン。
    • SERVICE_ACCOUNT: ステップ 1 で作成したサービス アカウントのフルネーム。
  1. CA プールの証明書発行の構成リソースを作成します。

     gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
         --ca-pool=CA_POOL \
         [--lifetime=CERTIFICATE_LIFETIME] \
         [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \
         [--key-algorithm=KEY_ALGORITHM]
     

    次のように置き換えます。

    • ISSUANCE_CONFIG_NAME: この証明書発行の構成を識別する一意の名前です。
    • CA_POOL: この証明書発行の構成に割り当てる CA プールの完全なリソースパスと名前。
    • CERTIFICATE_LIFETIME: 証明書の有効期間(日数)。有効な値は、標準の期間形式で 21 ~ 30 日です。デフォルトは 30 日(30D)です。この設定は省略可能です。
    • ROTATION_WINDOW_PERCENTAGE: 更新がトリガーされる証明書の存続期間の割合。デフォルトは 66% です。証明書の更新が、証明書の発行の 7 日以上後、期限切れの 7 日以上前に行われるように、証明書の有効期間を基準にしてローテーション ウィンドウの割合を設定する必要があります。この設定は省略可能です。
    • KEY_ALGORITHM: 秘密鍵の生成に使用される暗号化アルゴリズム。有効な値は ecdsa-p256 または rsa-2048 です。 デフォルト値は rsa-2048 です。この設定は省略可能です。

    証明書発行の構成リソースの詳細については、証明書発行の構成を管理するをご覧ください。

CA Service インスタンスによって発行された Google マネージド証明書を作成する

CA Service インスタンスによって発行された Google マネージド証明書を次のように作成します。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. 表示されたページで [証明書] タブを選択します。

  3. [証明書を追加] をクリックします。

  4. 証明書の名前を入力します。

    この名前は、プロジェクト内で一意にする必要があります。

  5. 省略可: 証明書の説明を入力します。この説明は、後で特定の証明書を特定するのに役立ちます。

  6. [ロケーション] で [グローバル] を選択します。

  7. [範囲] で [デフォルト] を選択します。

  8. [証明書の種類] で [Google マネージド証明書を作成する] を選択します。

  9. [認証局の種類] で [非公開] を選択します。

  10. 証明書のドメイン名を指定します。移行先ドメインのカンマ区切りリストを入力します。また、各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。

  11. [証明書発行の構成] で、ターゲット CA プールを参照する証明書発行構成リソースの名前を選択します。

  12. 証明書に関連付けるラベルを指定します。必要に応じて、複数のラベルを追加できます。ラベルを追加するには、[ ラベルの追加] ボタンをクリックして、ラベルの keyvalue を指定します。

  13. [作成] をクリックします。新しい証明書が証明書のリストに表示されることを確認します。

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config=ISSUANCE_CONFIG_NAME

次のように置き換えます。

  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • DOMAIN_NAMES: この証明書のターゲット ドメインのカンマ区切りのリスト。各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • ISSUANCE_CONFIG_NAME: ターゲット CA プールを参照する証明書発行構成リソースの名前。

API

次のように certificates.create メソッドに POST リクエストを送信して証明書を作成します。

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "issuanceConfig": ["ISSUANCE_CONFIG_NAME"],
 }
}

次のように置き換えます。

  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • DOMAIN_NAME: この証明書のターゲット ドメイン。ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • ISSUANCE_CONFIG_NAME: ターゲット CA プールを参照する証明書発行構成リソースの名前。

証明書のデプロイ プロセスの概要については、デプロイの概要をご覧ください。

CA Service によって発行されたリージョン Google マネージド証明書を作成する

管理している CA Service インスタンスによって発行されたリージョン Google マネージド証明書を作成するには、このセクションの手順を行います。

CA Service と Certificate Manager の統合を構成する

次のように、CA Service と統合するように Certificate Manager を構成します。

  1. ターゲットの Google Cloud プロジェクトに Certificate Manager サービス アカウントを作成します。

    gcloud beta services identity create
        --service=certificatemanager.googleapis.com \
        --project=PROJECT_ID
    

    PROJECT_ID は、ターゲット Google Cloud プロジェクトの ID に置き換えます。

このコマンドは、次の例に示すように、作成されたサービス ID の名前を返します。

service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
  1. Certificate Manager サービス アカウントに、次のようにターゲット CA プール内の証明書リクエスト元ロールを付与します。

    gcloud privateca pools add-iam-policy-binding CA_POOL \
        --location LOCATION \
        --member "serviceAccount:SERVICE_ACCOUNT" \
        --role roles/privateca.certificateRequester
    

    次のように置き換えます。

    • CA_POOL: ターゲット CA プールの ID。
    • LOCATION: ターゲットの Google Cloud ロケーション。CA プール、証明書発行構成リソース、マネージド証明書と同じロケーションを指定する必要があります。
    • SERVICE_ACCOUNT: ステップ 1 で作成したサービス アカウントのフルネーム。
  2. CA プールの証明書発行の構成リソースを作成します。

    gcloud beta certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL \
        --location=LOCATION> \
        [--lifetime=CERTIFICATE_LIFETIME] \
        [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \
        [--key-algorithm=KEY_ALGORITHM] \
    

    次のように置き換えます。

    • ISSUANCE_CONFIG_NAME: 証明書発行構成リソースの一意の名前。
    • CA_POOL: この証明書発行の構成に割り当てる CA プールの完全なリソースパスと名前。
    • LOCATION: ターゲットの Google Cloud のロケーション。CA プール、証明書発行構成リソース、マネージド証明書と同じロケーションを指定する必要があります。
    • CERTIFICATE_LIFETIME: 証明書の有効期間(日数)。有効な値は、標準の期間形式で 21 ~ 30 日です。デフォルト値は 30 日(30D)です。この設定は省略可能です。
    • ROTATION_WINDOW_PERCENTAGE: 更新がトリガーされる証明書の存続期間の割合。この設定は省略可能です。デフォルト値は 66% です。証明書の更新が、証明書の発行の 7 日以上後、期限切れの 7 日以上前に行われるように、証明書の有効期間を基準にしてローテーション ウィンドウの割合を設定する必要があります。
    • KEY_ALGORITHM: 秘密鍵の生成に使用される暗号化アルゴリズム。有効な値は ecdsa-p256 または rsa-2048 です。 デフォルト値は rsa-2048 です。この設定は省略可能です。
    • DESCRIPTION: 証明書発行構成リソースの説明。この設定は省略可能です。

証明書発行の構成リソースの詳細については、証明書発行の構成を管理するをご覧ください。

CA Service によって発行されたリージョン Google マネージド証明書を作成する

前の手順で作成した証明書発行構成リソースを使用して、CA Service によって発行されたリージョン Google マネージド証明書を作成します。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. 表示されたページで [証明書] タブを選択します。

  3. [証明書を追加] をクリックします。

  4. 証明書の名前を入力します。

    この名前は、プロジェクト内で一意にする必要があります。

  5. 省略可: 証明書の説明を入力します。この説明は、後で特定の証明書を特定するのに役立ちます。

  6. [ロケーション] で [リージョン] を選択します。

  7. [リージョン] リストでリージョンを選択します。

  8. [証明書の種類] で [Google マネージド証明書を作成する] を選択します。

  9. [認証局の種類] で [非公開] を選択します。

  10. 証明書のドメイン名を指定します。移行先ドメインのカンマ区切りリストを入力します。また、各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。

  11. [証明書発行の構成] で、ターゲット CA プールを参照する証明書発行構成リソースの名前を選択します。

  12. 証明書に関連付けるラベルを指定します。必要に応じて、複数のラベルを追加できます。ラベルを追加するには、[ ラベルの追加] ボタンをクリックして、ラベルの keyvalue を指定します。

  13. [作成] をクリックします。新しい証明書が証明書のリストに表示されることを確認します。

gcloud

次のコマンドを実行します。

gcloud beta certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config="ISSUANCE_CONFIG_NAME" \
    --location="LOCATION"

次のように置き換えます。

  • CERTIFICATE_NAME: 証明書の一意の名前。
  • DOMAIN_NAMES: この証明書のターゲット ドメインのカンマ区切りのリスト。各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • ISSUANCE_CONFIG_NAME: ターゲット CA プールを参照する証明書発行構成リソースの名前。
  • LOCATION: ターゲットの Google Cloud ロケーション。CA プール、証明書発行構成リソース、マネージド証明書と同じロケーションを指定する必要があります。

API

次のように certificates.create メソッドに POST リクエストを送信して証明書を作成します。

POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?
{
certificate: {
    name: "/projects/example-project/locations/LOCATION/certificates/my-cert",
    "managed": {
        "domains": ["DOMAIN_NAME"],
        "issuanceConfig": "ISSUANCE_CONFIG_NAME",
              },
             }
}

次のように置き換えます。

  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • CERTIFICATE_NAME: 証明書の一意の名前。
  • DOMAIN_NAME: この証明書のターゲット ドメイン。 ドメイン名は完全修飾ドメイン名(example.comwww.example.com など)にする必要があります。
  • ISSUANCE_CONFIG_NAME: ターゲット CA プールを参照する証明書発行構成リソースの名前。
  • LOCATION: ターゲットの Google Cloud ロケーション。CA プール、証明書発行構成リソース、マネージド証明書と同じロケーションを指定する必要があります。

証明書のデプロイ プロセスの概要については、デプロイの概要をご覧ください。

リージョン Google が管理する証明書を作成する

DNS 認証を使用して Google マネージド証明書を作成するには、次の操作を行います。

  1. 対応する DNS 認証を作成して、証明書の対象となる各ドメイン名を参照します。手順については、DNS 認証の作成をご覧ください。
  2. ターゲット ドメインの DNS ゾーンで、検証サブドメイン用に有効な CNAME レコードを構成します。手順については、DNS 構成への CNAME レコードの追加をご覧ください。
  3. このセクションの手順を完了します。

regionalglobal の両方の Google マネージド証明書を作成できます。global Google マネージド証明書の作成方法については、DNS 認証を使用して Google マネージド証明書を作成するをご覧ください。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. 表示されたページで [証明書] タブを選択します。

  3. [証明書を追加] をクリックします。

  4. 証明書の名前を入力します。

    この名前は、プロジェクト内で一意にする必要があります。

  5. 省略可: 証明書の説明を入力します。この説明は、後で特定の証明書を特定するのに役立ちます。

  6. [ロケーション] で [リージョン] を選択します。

  7. [リージョン] リストでリージョンを選択します。

  8. [証明書の種類] で [Google 管理の証明書を作成する] を選択します。

  9. [認証局の種類] で [パブリック] を選択します。

  10. 証明書のドメイン名を指定します。移行先ドメインのカンマ区切りリストを入力します。また、各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。

  11. [認証タイプ] で [DNS 認証] を選択します。ドメイン名に DNS 認証が関連付けられている場合は、自動的に取得されます。ドメイン名に DNS 認証が関連付けられていない場合は、次の操作を行います。

    1. [見つからない DNS 認証の作成] をクリックして [DNS 認証の作成] ダイアログを表示します。
    2. [DNS Authorization Name] フィールドに、DNS 認証名を指定します。
    3. [DNS 認証の作成] をクリックします。DNS 名がドメイン名に関連付けられることを確認します。
  12. 証明書に関連付けるラベルを指定します。必要に応じて、複数のラベルを追加できます。ラベルを追加するには、[ ラベルの追加] ボタンをクリックして、ラベルの keyvalue を指定します。

  13. [作成] をクリックします。新しい証明書が証明書のリストに表示されることを確認します。

gcloud

次のコマンドを実行します。

gcloud certificate-manager certificates create CERTIFICATE_NAME \
   --domains=DOMAIN_NAME \
   --dns-authorizations=AUTHORIZATION_NAME \
   --location=LOCATION

次のように置き換えます。

  • CERTIFICATE_NAME: 証明書の一意の名前。
  • DOMAIN_NAME: 証明書のターゲット ドメイン。 ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • AUTHORIZATION_NAME: この証明書用に作成した DNS 承認の名前。
  • LOCATION: Google マネージド証明書を作成するロケーション。

ワイルドカード ドメイン名を使用して Google マネージド証明書を作成するには、次のコマンドを使用します。ワイルドカード ドメイン名証明書は、特定のドメインのすべての第 1 レベル サブドメインに対応します。

gcloud certificate-manager certificates create CERTIFICATE_NAME \
   --domains="*.DOMAIN_NAME,DOMAIN_NAME" \
   --dns-authorizations=AUTHORIZATION_NAME
   --location=LOCATION

次のように置き換えます。

  • CERTIFICATE_NAME: 証明書の一意の名前。
  • DOMAIN_NAME: 証明書のターゲット ドメイン。 アスタリスクとドットの接頭辞(*.)は、ワイルドカード証明書を示します。ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • AUTHORIZATION_NAME: この証明書用に作成した DNS 承認の名前。
  • LOCATION: Google 管理の証明書を作成する場所。

セルフマネージド証明書をアップロードする

セルフマネージド証明書をアップロードするには、このセクションの手順を行います。次のタイプのグローバルおよびリージョン X.509 TLS(SSL)証明書をアップロードできます。

  • 任意のサードパーティの認証局(CA)によって生成された証明書
  • 管理する認証局によって生成された証明書
  • 秘密鍵と証明書を作成するの説明に従って自己署名証明書を作成する

次の PEM エンコード ファイルをアップロードする必要があります。

  • 証明書(.crt)ファイル
  • 対応する秘密鍵(.key)ファイル

ロードバランサで証明書の提供を開始するために必要な手順については、デプロイの概要をご覧ください。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. 表示されたページで [証明書] タブを選択します。

  3. [証明書を追加] をクリックします。

  4. 証明書の名前を入力します。

    この名前は、プロジェクト内で一意にする必要があります。

  5. 省略可: 証明書の [説明] を入力します。説明は、後で特定の証明書を識別する際に役立ちます。

  6. [ロケーション] で、次のいずれかを選択します。

    • グローバル: 証明書をグローバルで使用できるように、[グローバル] を選択します。[グローバル] を選択した場合は、[スコープ] プルダウン メニューから次のいずれかを選択します。
      • デフォルト: デフォルトのスコープを使用する証明書は、Google のコア データセンターから提供されます。
      • Edge Cache: このスコープの証明書は特別な証明書であり、コア以外の Google データセンターから提供されます。
      • すべてのリージョン: 証明書はすべてのリージョンから提供されます。
    • リージョン: 証明書を特定のリージョンで使用できるように、リージョンを選択します。[リージョン] を選択した場合は、[リージョン] リストでリージョンを選択します。
  7. [証明書の種類] で [セルフマネージド証明書を作成] を選択します。

  8. [証明書] フィールドについて、次のいずれかを行います。

    • [アップロード] ボタンをクリックし、PEM 形式の証明書ファイルを選択します。
    • PEM 形式の証明書のコンテンツをコピーして貼り付けます。コンテンツは -----BEGIN CERTIFICATE----- で始まり、-----END CERTIFICATE----- で終わる必要があります。
  9. [秘密鍵証明書] フィールドで、次のいずれかを行います:

    • [アップロード] ボタンをクリックし、秘密鍵を選択します。秘密鍵は PEM 形式で、パスフレーズで保護されていない必要があります。
    • PEM 形式の秘密鍵のコンテンツをコピーして貼り付けます。秘密鍵は -----BEGIN PRIVATE KEY----- で始まり、-----END PRIVATE KEY----- で終わる必要があります。
  10. 証明書に関連付けるラベルを指定します。必要に応じて、複数のラベルを追加できます。ラベルを追加するには、[ ラベルの追加] ボタンをクリックして、ラベルの keyvalue を指定します。

  11. [作成] をクリックします。新しい証明書が証明書のリストに表示されていることを確認します。

gcloud

gcloud certificate-manager certificates create  CERTIFICATE_NAME \
    --certificate-file="CERTIFICATE_FILE" \
    --private-key-file="PRIVATE_KEY_FILE" \
    [--location="REGION"]

次のように置き換えます。

  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • CERTIFICATE_FILE: .crt 証明書ファイルのパスとファイル名。
  • PRIVATE_KEY_FILE: .key 秘密鍵ファイルのパス名とファイル名。
  • REGION: ターゲットの Google Cloud リージョン。デフォルトは global です。この設定は省略可能です。

Terraform

セルフマネージド証明書をアップロードするには、self_managed ブロックで google_certificate_manager_certificate リソースを使用します。

API

次のように、certificates.create メソッドに POST リクエストを送信して証明書をアップロードします。

POST /v1/projects/PROJECT_ID/locations/[REGION]/certificates?certificate_id=CERTIFICATE_NAME
{
  self_managed: {
    pem_certificate: "PEM_CERTIFICATE",
    pem_private_key: "PEM_KEY",
  }
}

次のように置き換えます。

  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • CERTIFICATE_NAME: この証明書を説明する一意の名前。
  • PEM_CERTIFICATE: 証明書の PEM。
  • PEM_KEY: 鍵の PEM。
  • REGION: ターゲットの Google Cloud リージョン。デフォルトは global です。この設定は省略可能です。

証明書を更新する

対応する証明書マップ内のドメイン名への割り当てを変更せずに既存の証明書を更新するには、このセクションの手順を完了します。新しい証明書の SAN は、既存の証明書の SAN と完全に一致している必要があります。

Google マネージド証明書では、description フィールドと labels フィールドのみを更新できます。セルフマネージド証明書を更新するには、次の PEM エンコード ファイルをアップロードする必要があります。

  • 証明書(.crt)ファイル
  • 対応する秘密鍵(.key)ファイル

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

gcloud

gcloud certificate-manager certificates update CERTIFICATE_NAME \
    --certificate-file="CERTIFICATE_FILE" \
    --private-key-file="PRIVATE_KEY_FILE" \
    --description="DESCRIPTION" \
    --update-labels="LABELS" \
    [--location="REGION"]

次のように置き換えます。

  • CERTIFICATE_NAME: ターゲット証明書の名前。
  • CERTIFICATE_FILE: .crt 証明書ファイルのパスとファイル名。
  • PRIVATE_KEY_FILE: .key 秘密鍵ファイルのパス名とファイル名。
  • DESCRIPTION: この証明書の一意の説明値。
  • LABELS: この証明書に適用されるラベルのカンマ区切りリスト。
  • REGION: ターゲットの Google Cloud リージョン。デフォルトは global です。この設定は省略可能です。

API

次のように、certificates.patch メソッドに PATCH リクエストを送信して証明書を更新します。

PATCH /v1/projects/PROJECT_ID/locations/[REGION]/certificates/CERTIFICATE_NAME?updateMask=self_managed,labels,description
{
   self_managed: { // Self-managed certificates only
    pem_certificate: "PEM_CERTIFICATE",
    pem_private_key: "PEM_KEY",
  }
  "description": "DESCRIPTION",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE",
  }

}

次のように置き換えます。

  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • REGION: ターゲットの Google Cloud リージョン。デフォルトは global です。この設定は省略可能です。
  • CERTIFICATE_NAME: ターゲット証明書の名前。
  • PEM_CERTIFICATE: 証明書の PEM。
  • PEM_KEY: 鍵の PEM。
  • DESCRIPTION は、この証明書のわかりやすい説明です。
  • LABEL_KEY: この証明書に適用されるラベルキー。
  • LABEL_VALUE: この証明書に適用されるラベル値。

証明書を一覧表示する

Certificate Manager で管理されている証明書を一覧表示するには、このセクションの手順を行います。たとえば、次のクエリを実行できます。

  • 割り当てられたドメイン名で証明書を一覧表示する
  • 期限切れの証明書を一覧表示する

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 閲覧者
  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

コンソール

プロジェクトに、Certificate Manager によって管理されている証明書が 10,000 個を超える場合、Google Cloud コンソールの [Certificate Manager] ページに証明書が表示されません。その場合は、代わりに gcloud CLI コマンドを使用して証明書を一覧表示します。

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. 表示されたページで、[証明書] タブを選択します。このタブには、選択したプロジェクトで Certificate Manager によって管理されているすべての証明書が一覧表示されます。

[従来の証明書] タブには、Cloud Load Balancing を介して直接プロビジョニングされた、選択したプロジェクトの証明書が一覧表示されます。これらの証明書は、Certificate Manager では管理されません。 これらの証明書の管理手順については、Cloud Load Balancing ドキュメントの次のいずれかの記事をご覧ください。

gcloud

gcloud certificate-manager certificates list \
    [--location="REGION"] \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY"

次のように置き換えます。

  • REGION: ターゲット Google Cloud リージョン。すべてのリージョンの証明書を一覧表示するには、値として - を使用します。デフォルト値は global です。この設定は省略可能です。
  • FILTER: 返される結果を特定の値に制限する式。たとえば、次の基準で結果をフィルタリングできます。
    • 有効期限: --filter='expire_time >= "2021-09-01T00:00:00Z"'
    • SAN DNS 名: --filter='san_dnsnames:"example.com"'
    • 証明書の状態: --filter='managed.state=FAILED'
    • 証明書の種類: --filter='managed:*'
    • ラベルと作成時刻: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

Certificate Manager で使用できるその他のフィルタリングの例については、Cloud Key Management Service のドキュメントのリストの結果の並べ替えとフィルタリングをご覧ください。

  • PAGE_SIZE: ページごとに返す結果の数
  • LIMIT: 返される結果の最大件数です。
  • SORT_BY: 返される結果の並べ替えの基準となる name フィールドのカンマ区切りリスト。デフォルトの並べ替え順は昇順です。降順で並べ替えるには、フィールドの先頭に ~ を付けます。

API

次のように、certificates.list メソッドに LIST リクエストを送信して、証明書を一覧表示します。

GET /v1/projects/PROJECT_ID/locations/REGION/certificates?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

次のように置き換えます。

  • REGION: ターゲットの Google Cloud リージョン。すべてのリージョンの証明書を一覧表示するには、値として - を使用します。
  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • FILTER: 返される結果を特定の値に制限する式。
  • PAGE_SIZE: ページごとに返す結果の数
  • SORT_BY: 返される結果の並べ替えの基準とするフィールド名のカンマ区切りリストデフォルトの並べ替え順は昇順です。降順で並べ替えるには、フィールドの先頭に ~ を付けます。

証明書の状態を表示する

既存の証明書の状態(プロビジョニングの状態など)とその他の詳細情報を表示するには、このセクションの手順を行います。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 閲覧者
  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

コンソール

プロジェクトに、Certificate Manager によって管理されている証明書が 10,000 個を超える場合、Google Cloud コンソールの [Certificate Manager] ページに証明書が表示されません。そのような場合は、代わりに gcloud CLI コマンドを使用して証明書を一覧表示します。ただし、証明書の [詳細] ページへの直接リンクがある場合は、Google Cloud コンソールの [Certificate Manager] ページに詳細が表示されます。

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. 表示されたページで [証明書] タブを選択します。

  3. [証明書] タブでターゲット証明書に移動し、証明書の名前をクリックします。

[証明書の詳細] ページに、選択した証明書に関する詳細情報が表示されます。

  1. 省略可: この証明書に対する Certificate Manager API からの REST レスポンスを表示するには、[同等の REST] をクリックします。

  2. 省略可: 表示する証明書発行の構成が証明書に関連付けられている場合は、[発行の構成] フィールドで、関連する証明書発行の構成の名前をクリックします。

    Google Cloud コンソールに証明書発行の構成の完全な構成が表示されます。

gcloud

gcloud certificate-manager certificates describe CERTIFICATE_NAME \
    [--location="REGION"]

次のように置き換えます。

  • CERTIFICATE_NAME: ターゲット証明書の名前。
  • REGION: ターゲットの Google Cloud リージョン。デフォルトは global です。この設定は省略可能です。

API

次のように、certificates.get メソッドに GET リクエストを送信して証明書の状態を表示します。

GET /v1/projects/PROJECT_ID/locations/REGION/certificates/CERTIFICATE_NAME

次のように置き換えます。

  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • REGION: ターゲットの Google Cloud リージョン。
  • CERTIFICATE_NAME: ターゲット証明書の名前。

証明書を削除する

Certificate Manager から証明書を削除するには、このセクションの手順を完了します。証明書を削除する前に、その証明書を参照するすべての証明書マップエントリから削除する必要があります。そうしないと、削除は失敗します。

このタスクを完了するには、ターゲット Google Cloud プロジェクトに対する Certificate Manager オーナーのロールが必要です。

詳細については、ロールと権限をご覧ください。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動します。

    Certificate Manager に移動

  2. [証明書] タブで、削除する証明書のチェックボックスをオンにします。

  3. [削除] をクリックします。

  4. 表示されたダイアログで、[削除] をクリックして確定します。

gcloud

gcloud certificate-manager certificates delete CERTIFICATE_NAME \
   [--location="REGION"]

次のように置き換えます。

  • CERTIFICATE_NAME: ターゲット証明書の名前。
  • REGION: ターゲットの Google Cloud リージョン。デフォルトは global です。この設定は省略可能です。

API

次のように、certificates.delete メソッドに対して DELETE リクエストを行い、証明書を削除します。

DELETE /v1/projects/PROJECT_ID/locations/REGION/certificates/CERTIFICATE_NAME

次のように置き換えます。

  • PROJECT_ID: ターゲットの Google Cloud プロジェクトの ID。
  • REGION: ターゲットの Google Cloud リージョン。
  • CERTIFICATE_NAME: ターゲット証明書の名前。

次のステップ