リージョンの Google マネージド証明書をデプロイする


このチュートリアルでは、Certificate Manager を使用して、リージョン Google マネージド証明書をリージョン外部アプリケーション ロードバランサまたはリージョン内部アプリケーション ロードバランサにデプロイする方法について説明します。

証明書をリージョン外部アプリケーション ロードバランサまたはリージョン内部アプリケーション ロードバランサにデプロイするには、証明書をターゲット プロキシに直接添付します。

目標

このチュートリアルでは、次のタスクを行う方法を説明します。

  • Certificate Manager を使用して、DNS 承認で公的に信頼できる CA によって発行された Google マネージド証明書を作成します。リージョン Google マネージド証明書を作成するには、プロジェクトごとの DNS 認証を使用する必要があります。

  • ターゲット HTTPS プロキシを使用して、サポートされているロードバランサに証明書をデプロイします。

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

準備

  1. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  2. 証明書をデプロイするには、Google Cloud CLI バージョン 465.0.0 以降が必要です。gcloud CLI のバージョンを確認するには、次のコマンドを実行します。

    gcloud --version
    
  3. gcloud CLI を更新するには、次のコマンドを実行します。

    gcloud components update
    
  4. このチュートリアルのタスクを完了するための次のロールがあることを確認してください。

    • Certificate Manager オーナー: Certificate Manager リソースの作成と管理に必要です。
    • Compute ロードバランサ管理者または Compute ネットワーク管理者: HTTPS ターゲット プロキシの作成と管理に必要です。
    • DNS 管理者: DNS ソリューションとして Cloud DNS を使用する場合に必要です。

    詳しくは以下をご覧ください。

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

DNS 認証とそれを参照する Google マネージド証明書を作成するには、このセクションの手順を完了します。

DNS 認証 の作成

このセクションの説明に沿って、DNS 認証を作成します。*.myorg.example.com などのワイルドカード証明書用の DNS 認証を作成する場合は、親ドメイン(myorg.example.com など)の DNS 認証を構成します。

gcloud

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=PER_PROJECT_RECORD \
    –-location="LOCATION" \
gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME \
    -–location="LOCATION"

以下を置き換えます。

  • AUTHORIZATION_NAME: DNS 認証の名前。
  • DOMAIN_NAME: この DNS 承認を作成するドメインの名前。ドメイン名は完全修飾ドメイン名(myorg.example.com など)にする必要があります。
  • LOCATION: DNS 認証を作成するロケーション。

このコマンドは、次の例に示すように出力を返します。出力の CNAME レコードを使用して、DNS 構成に追加します。

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.us-central1.authorize.certificatemanager.goog.
name: _acme-challenge_ujmmovf2vn55tgye.myorg.example.com.
type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/us-central1/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

DNS 構成に CNAME レコードを追加する

Google Cloud を使用して DNS を管理している場合は、このセクションの手順に従ってください。それ以外の場合は、サードパーティ DNS ソリューションのドキュメントをご確認ください。

このセクションの手順を行う前に、パブリック DNS ゾーンが作成されていることを確認してください。

DNS 認証を作成するとき、gcloud CLI コマンドは対応する CNAME レコードを返します。次のように、この CNAME レコードをターゲット ドメインの DNS ゾーンの DNS 構成に追加する必要があります。

gcloud

  1. DNS レコード トランザクションを次のように開始します。

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    DNS_ZONE_NAME は、ターゲット DNS ゾーンの名前に置き換えます。

  2. CNAME レコードをターゲット DNS ゾーンに追加します。

    gcloud dns record-sets transaction add CNAME_RECORD_DATA \
      --name= CNAME_RECORD_NAME \
      --ttl="30" \
      --type="CNAME" \
      --zone="DNS_ZONE_NAME"
    

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

    • CNAME_RECORD_DATA: 対応する DNS 認証を作成した gCloud CLI コマンドによって返される CNAME レコードの完全なデータ値。
    • CNAME_RECORD_NAME: 対応する DNS 認証を作成した gcloud CLI コマンドによって返される CNAME レコードの完全な名前の値。
    • DNS_ZONE_NAME: ターゲット DNS ゾーンの名前。

    次の例をご覧ください。

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.us-central1.authorize.certificatemanager.goog. \
      --name="_acme-challenge_ujmmovf2vn55tgye.myorg.example.com" \
      --ttl="30" \
      --type="CNAME" \
      --zone="example-com"
    
  3. DNS レコード トランザクションを実行して変更を保存します。

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    DNS_ZONE_NAME は、ターゲット DNS ゾーンの名前に置き換えます。

DNS 認証を参照するリージョン Google マネージド証明書を作成する

前の手順で作成した DNS 認証を参照する Google マネージド証明書を作成するには、次の操作を行います。

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 マネージド証明書を作成するロケーション。

証明書が有効であることを確認する

次のコマンドを使用して、証明書をロードバランサにデプロイする前に、証明書自体が有効であることを確認します。証明書の状態が ACTIVE に変わるまで最長で数時間かかることがあります。

gcloud certificate-manager certificates describe CERTIFICATE_NAME \
    --location=LOCATION

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

  • CERTIFICATE_NAME: 証明書の一意の名前。
  • LOCATION: Google マネージド証明書を作成したロケーション。

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

certificatePem: myPEM
createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  authorizationAttemptInfo:
  - domain: myorg.example.com
    state: AUTHORIZED
  dnsAuthorizations:
  -  projects/my-project/locations/us-central1/dnsAuthorizations/myAuth
  domains:
  - myorg.example.com
  state: ACTIVE
name: projects/myProject/locations/us-central1/certificates/myCert
scope: myScope
sanDnsnames:
- myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

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

Google マネージド証明書をロードバランサにデプロイするには、次の手順を行います。

このセクションのタスクに進む前に、リージョン Google マネージド証明書を作成するセクションに記載されているタスクを完了していることを確認してください。

リージョン Google マネージド証明書をリージョン外部アプリケーション ロードバランサまたはリージョン内部アプリケーション ロードバランサにデプロイするには、証明書をターゲット プロキシに直接添付してデプロイします。

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

証明書をプロキシに直接添付するには、次のコマンドを実行します。

gcloud compute target-https-proxies update PROXY_NAME \
    --url-map=URL_MAP \
    --region=REGION \
    --certificate-manager-certificates=CERTIFICATE_NAME

以下を置き換えます。

  • PROXY_NAME: プロキシの一意の名前。
  • URL_MAP: ロードバランサの作成時に作成した URL マップの名前。
  • REGION: HTTPS ターゲット プロキシを作成するリージョン。
  • CERTIFICATE_NAME: 証明書の名前。

クリーンアップ

このチュートリアルで行った変更を元に戻すには、次の手順を行います。

  1. Google マネージド証明書を削除します。
    gcloud certificate-manager certificates delete CERTIFICATE_NAME
       --location=LOCATION
    
    次のように置き換えます。
  • CERTIFICATE_NAME: 証明書の名前。
  • LOCATION: Google マネージド証明書を作成したロケーション。
  1. DNS 認証を削除します。
    gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
       --location=LOCATION
    
    次のように置き換えます。
  • AUTHORIZATION_NAME: DNS 認証の名前。
  • LOCATION: DNS 認証を作成したロケーション。

次のステップ