Certificate Authority Service を使用してクロスリージョン Google マネージド証明書をデプロイする

このチュートリアルでは、Certificate Manager を使用して、Certificate Authority 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
    
  2. Certificate Manager サービス アカウントに、ターゲット CA プール内の CA Service 証明書リクエスト元ロールroles/privateca.certificateRequester)を付与します。

    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 ロケーション。
    • SERVICE_ACCOUNT: ステップ 1 で作成したサービス アカウントのフルネーム。
  3. CA プールの証明書発行の構成リソースを作成します。

    コンソール

    1. Google Cloud コンソールで、[Certificate Manager] ページの [発行構成] タブに移動します。

      [Certificate Manager] に移動

    2. [作成] をクリックします。[証明書発行の構成を作成] ページが表示されます。

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

    4. 省略可: [説明] フィールドに、発行構成の説明を入力します。

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

    6. 省略可: [存続期間] フィールドに、発行する証明書の存続期間を日数で指定します。値は 21~30 日の範囲で指定してください。

    7. 省略可: [ローテーション時間枠の割合] で、更新プロセスを開始するときの証明書の存続期間の割合を指定します。有効な値の範囲については、存続期間とローテーション時間枠の割合をご覧ください。

    8. 省略可: [鍵アルゴリズム] リストから、秘密鍵の生成時に使用する鍵アルゴリズムを選択します。

    9. [CA プール] リストから、この証明書発行の構成リソースに割り当てる CA プールの名前を選択します。

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

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

    gcloud

    gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL
    

    以下を置き換えます。

    • ISSUANCE_CONFIG_NAME: 証明書発行構成リソースの名前。
    • CA_POOL: この証明書発行構成リソースに割り当てる CA プールの完全なリソースパスと名前。

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

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

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

コンソール

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

    Certificate Manager に移動

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

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

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

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

  6. [スコープ] で [すべてのリージョン] を選択します。

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

  8. [認証局のタイプ] で [プライベート] を選択します。

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

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

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

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

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

gcloud

Certificate Authority Service を使用してクロスリージョン Google マネージド証明書を作成するには、issuance-config フラグと --scope フラグを指定して certificate-manager certificates create コマンドを使用します。

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

以下を置き換えます。

  • CERTIFICATE_NAME: 証明書の名前。
  • DOMAIN_NAME: ターゲット ドメインの名前。ドメイン名は完全修飾ドメイン名(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",
  "scope": "ALL_REGIONS"
 }
}

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

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

証明書のステータスを確認する

証明書をロードバランサにデプロイする前に、証明書が有効であることを確認します。証明書の状態が ACTIVE に変わるまで数分かかることがあります。

コンソール

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

    Certificate Manager に移動

  2. [証明書] タブで、証明書の [ステータス] 列を確認します。

gcloud

証明書のステータスを確認するには、次のコマンドを実行します。

gcloud certificate-manager certificates describe CERTIFICATE_NAME

CERTIFICATE_NAME は、ターゲット Google マネージド証明書の名前に置き換えます。

出力は次のようになります。

createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  domains:
  - myorg.example.com
  issuanceConfig: projects/myproject/locations/global/issuanceConfigs/myissuanceConfig
  state: ACTIVE
name: projects/myproject/locations/global/certificates/mycertificate
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
  - myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

その他のトラブルシューティングの手順については、Certificate Manager のトラブルシューティングをご覧ください。

証明書をロードバランサにデプロイする

グローバル Google マネージド証明書をデプロイするには、ターゲット プロキシに直接関連付けます。

証明書をターゲット プロキシに直接添付する

証明書は、新しいターゲット プロキシまたは既存のターゲット プロキシに接続できます。

証明書を新しいターゲット プロキシに添付するには、gcloud compute target-https-proxies create コマンドを使用します。

gcloud compute target-https-proxies create PROXY_NAME \
    --url-map=URL_MAP \
    --certificate-manager-certificates=CERTIFICATE_NAME \
    --global

以下を置き換えます。

  • PROXY_NAME: ターゲット プロキシの名前
  • URL_MAP: URL マップの名前。ロードバランサの作成時に URL マップを作成しました。
  • CERTIFICATE_NAME: 証明書の名前。

証明書を既存のターゲット HTTPS プロキシに接続するには、gcloud compute target-https-proxies update コマンドを使用します。既存のターゲット プロキシの名前がわからない場合は、[ターゲット プロキシ] ページに移動して、ターゲット プロキシの名前を確認します。

gcloud compute target-https-proxies update PROXY_NAME \
    --global \
    --certificate-manager-certificates=CERTIFICATE_NAME

ターゲット プロキシを作成または更新したら、次のコマンドを実行して確認します。

gcloud compute target-https-proxies list

CA Service によって発行された証明書のトラブルシューティング

トラブルシューティングの手順については、CA Service インスタンスによって発行された証明書に関連する問題をご覧ください。

クリーンアップ

このチュートリアルで使用したリソースについて Google Cloud アカウントに課金されないようにするには、リソースを削除します。

  1. ロードバランサとそのリソースを削除します。

    ロード バランシングの設定をクリーンアップするをご覧ください。

  2. Google マネージド証明書を削除します。

    コンソール

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

      Certificate Manager に移動

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

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

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

    gcloud

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    CERTIFICATE_NAME は、ターゲット証明書の名前に置き換えます。

  3. 証明書発行の構成リソースを削除します。

    コンソール

    1. Google Cloud コンソールで、[Certificate Manager] ページの [発行構成] タブに移動します。

      [Certificate Manager] に移動

    2. 削除する発行構成リソースのチェックボックスをオンにします。

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

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

    gcloud

    gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
    

    ISSUANCE_CONFIG_NAME は、ターゲットの証明書発行構成リソースの名前に置き換えます。

  4. CA プールを削除します。

    CA プールを削除する場合や、証明書発行構成リソースで参照されている CA プールで最後に有効にした CA を無効にする場合、CA プールを参照するすべての証明書発行の構成を削除します。詳細については、CA プールを削除するをご覧ください。