証明書を管理

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

詳細については、サポートされている TLS 証明書をご覧ください。

Google マネージド証明書を作成する

Certificate Manager では、次の方法で Google マネージド証明書を作成できます。

  • ロードバランサ認証を使用した Google マネージド証明書(グローバル)
  • DNS 認証を使用した Google マネージド証明書(グローバル、リージョン、クロスリージョン)
  • Certificate Authority Service(CA Service)を使用する Google マネージド証明書(グローバル、リージョン、クロスリージョン)

ロードバランサ認証

ロードバランサ認証を使用すると、ロードバランサによってトラフィックが処理されるときに、ドメインの Google マネージド証明書を取得できます。この方法では、証明書のプロビジョニングに追加の DNS レコードは必要ありません。ロードバランサ認証は、既存のトラフィックがない新しい環境に使用できます。Google マネージド証明書でロードバランサ認証を使用するタイミングについては、Google マネージド証明書のドメイン認証のタイプをご覧ください。

ロードバランサ認証を使用する Google マネージド証明書は、global ロケーションでのみ作成できます。ロードバランサ認証済み証明書は、ワイルドカード ドメインをサポートしていません。

コンソール

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

    Certificate Manager に移動

  2. [証明書] タブで、[証明書を追加] をクリックします。

  3. [証明書名] フィールドに、証明書の一意の名前を入力します。

  4. 省略可: [説明] フィールドに証明書の説明を入力します。説明は、証明書を識別するために使用します。

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

  6. [範囲] で、次のいずれかのオプションを選択します。

    • デフォルト: グローバル外部アプリケーション ロードバランサまたはグローバル外部プロキシ ネットワーク ロードバランサで証明書を使用する場合。
    • エッジ キャッシュ: Media CDN で証明書を使用し、証明書に複数のドメインを指定する場合。

    ロードバランサ認証は、リージョン ロケーションまたはすべてのリージョン スコープでは使用できません。

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

  8. [認証局のタイプ] で [公開] を選択します。

  9. [ドメイン名] フィールドに、証明書のドメイン名をカンマ区切りで指定します。各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。

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

  11. [ラベル] フィールドで、証明書に関連付けるラベルを指定します。ラベルを追加するには、[ラベルを追加] をクリックして、ラベルのキーと値を指定します。

  12. [作成] をクリックします。

    新しい証明書が証明書のリストに表示されます。

gcloud

ロードバランサ認証を使用してグローバル Google マネージド証明書を作成するには、certificate-manager certificates create コマンドを使用します。

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    [--scope=SCOPE]

以下を置き換えます。

  • CERTIFICATE_NAME: 証明書の名前。
  • DOMAIN_NAMES: ターゲット ドメインのカンマ区切りのリスト。各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • SCOPE: 次のいずれかを入力します。
    • default: グローバル外部アプリケーション ロードバランサまたはグローバル外部プロキシ ネットワーク ロードバランサで証明書を使用する場合。
    • all-regions: クロスリージョン内部アプリケーション ロードバランサで証明書を使用する場合。
    • edge-cache: Media CDN で証明書を使用し、証明書に複数のドメインを指定する場合。

Terraform

google_certificate_manager_certificate リソースを使用します。

resource "google_certificate_manager_certificate" "default" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "Cert with LB authorization"
  managed {
    domains = [local.domain]
  }
  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"],
  "scope": "SCOPE" //optional
 }
}

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

  • PROJECT_ID: Google Cloud プロジェクトの ID。
  • CERTIFICATE_NAME: 証明書の名前。
  • DOMAIN_NAMES: ターゲット ドメインのカンマ区切りのリスト。各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • SCOPE: 次のいずれかを入力します。
    • default: グローバル外部アプリケーション ロードバランサまたはグローバル外部プロキシ ネットワーク ロードバランサで証明書を使用する場合。
    • all-regions: クロスリージョン内部アプリケーション ロードバランサで証明書を使用する場合。
    • edge-cache: Media CDN で証明書を使用し、証明書に複数のドメインを指定する場合。

DNS 認証

本番環境が準備できる前に Google マネージド証明書を使用するには、DNS 認証を使用してプロビジョニングします。Google マネージド証明書で DNS 認証を使用するタイミングについては、Google マネージド証明書のドメイン認証のタイプをご覧ください。

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

証明書を作成する前に、次の操作を行います。

コンソール

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

    Certificate Manager に移動

  2. [証明書] タブで、[証明書を追加] をクリックします。

  3. [証明書名] フィールドに、証明書の一意の名前を入力します。

  4. 省略可: [説明] フィールドに証明書の説明を入力します。説明は、証明書を識別するために使用します。

  5. [ロケーション] で、[グローバル] または [リージョン] を選択します。

    [リージョン] を選択した場合は、[リージョン] リストからリージョンを選択します。

  6. [範囲] で、次のいずれかのオプションを選択します。

    • デフォルト: グローバル外部アプリケーション ロードバランサまたはグローバル外部プロキシ ネットワーク ロードバランサで証明書を使用する場合。
    • すべてのリージョン: クロスリージョン内部アプリケーション ロードバランサで証明書を使用する場合。
    • エッジ キャッシュ: Media CDN で証明書を使用し、証明書に複数のドメインを指定する場合。

    [スコープ] フィールドは、[リージョン] のロケーションを選択した場合は使用できません。

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

  8. [認証局のタイプ] で [公開] を選択します。

  9. [ドメイン名] フィールドに、証明書のドメイン名をカンマ区切りのリストで指定します。各ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。 ドメイン名は、*.example.com などのワイルドカード ドメイン名にすることもできます。

  10. [認証タイプ] で [DNS 認証] を選択します。

    このページには、ドメイン名の DNS 認証が一覧表示されます。ドメイン名に関連付けられた DNS 認証がない場合は、次の手順で作成します。

    1. [見つからない DNS 認証の作成] をクリックします。
    2. [DNS 認証名] フィールドに、DNS 認証の名前を指定します。デフォルトの DNS 認証タイプは FIXED_RECORD です。複数のプロジェクトで証明書を個別に管理するには、[プロジェクトごとの認証] チェックボックスをオンにします。
    3. [DNS 認証を作成] をクリックします。
  11. [ラベル] フィールドで、証明書に関連付けるラベルを指定します。ラベルを追加するには、[ラベルを追加] をクリックして、ラベルのキーと値を指定します。

  12. [作成] をクリックします。

    新しい証明書が証明書のリストに表示されます。

gcloud

DNS 認証を使用して Google マネージド証明書を作成するには、certificate-manager certificates create コマンドを実行します。

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAME, *.DOMAIN_NAME" \
    --dns-authorizations="AUTHORIZATION_NAMES" \
    [--location=LOCATION] \
    [--scope=SCOPE]

以下を置き換えます。

  • CERTIFICATE_NAME: 証明書の名前。
  • DOMAIN_NAME: ターゲット ドメインの名前。ドメイン名は、完全修飾ドメイン名(myorg.example.com など)またはワイルドカード ドメイン(*.myorg.example.com など)にする必要があります。アスタリスク ドットの接頭辞(*.)は、ワイルドカード証明書を示します。
  • AUTHORIZATION_NAMES: DNS 認証の名前のカンマ区切りのリスト。
  • LOCATION: ターゲット Google Cloud ロケーション。デフォルトは global です。
  • SCOPE: 次のいずれかを入力します。
    • default: グローバル外部アプリケーション ロードバランサまたはグローバル外部プロキシ ネットワーク ロードバランサで証明書を使用する場合。
    • all-regions: クロスリージョン内部アプリケーション ロードバランサで証明書を使用する場合。
    • edge-cache: Media CDN で証明書を使用し、証明書に複数のドメインを指定する場合。

Terraform

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
  }
}

API

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

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

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

  • PROJECT_ID: Google Cloud プロジェクトの ID。
  • LOCATION: ターゲット Google Cloud ロケーション。
  • CERTIFICATE_NAME: 証明書の名前。
  • DOMAIN_NAME: ターゲット ドメインの名前。ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • ISSUANCE_CONFIG_NAME: ターゲット CA プールを参照する証明書発行構成リソースの名前。
  • SCOPE: 次のいずれかを入力します。
    • default: グローバル外部アプリケーション ロードバランサまたはグローバル外部プロキシ ネットワーク ロードバランサで証明書を使用する場合。
    • all-regions: クロスリージョン内部アプリケーション ロードバランサで証明書を使用する場合。
    • edge-cache: Media CDN で証明書を使用し、証明書に複数のドメインを指定する場合。

CA Service により発行

Certificate Manager を CA Service と統合して、Google マネージド証明書を発行できます。グローバル Google マネージド証明書を発行するには、任意のリージョンのリージョン CA プールを使用します。リージョン Google マネージド証明書を発行するには、証明書と同じリージョンの CA プールを使用します。

証明書を作成する前に、CA Service と Certificate Manager の統合を構成します。