このチュートリアルでは、Certificate Manager を使用して、リージョンの Google マネージド証明書をリージョン外部アプリケーション ロードバランサまたはリージョン内部アプリケーション ロードバランサにデプロイする方法について説明します。
証明書をリージョン外部アプリケーション ロードバランサまたはリージョン内部アプリケーション ロードバランサにデプロイするには、証明書をターゲット プロキシに直接接続します。
目標
このチュートリアルでは、次のタスクを行う方法を説明します。
Certificate Manager を使用して、DNS 承認で公的に信頼できる CA によって発行された Google マネージド証明書を作成します。リージョン Google マネージド証明書を作成するには、プロジェクトごとの DNS 認証を使用する必要があります。
ターゲット HTTPS プロキシを使用して、サポートされているロードバランサに証明書をデプロイします。
証明書のデプロイ プロセスの詳細については、デプロイの概要をご覧ください。
始める前に
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
証明書をデプロイするには、Google Cloud CLI バージョン
465.0.0
以降が必要です。gcloud CLI のバージョンを確認するには、次のコマンドを実行します。gcloud --version
gcloud CLI を更新するには、次のコマンドを実行します。
gcloud components update
このチュートリアルのタスクを完了するための次のロールがあることを確認してください。
- Certificate Manager オーナー: Certificate Manager リソースの作成と管理に必要です。
- Compute ロードバランサ管理者または Compute ネットワーク管理者: HTTPS ターゲット プロキシの作成と管理に必要です。
- DNS 管理者: DNS ソリューションとして Cloud DNS を使用する場合に必要です。
詳しくは以下をご覧ください。
- Certificate Manager のロールと権限
- Compute Engine の Compute Engine の IAM ロールと権限
- Cloud DNS の IAM を使用したアクセス制御
リージョン Google が管理する証明書を作成する
DNS 認証と、その DNS 認証を参照する Google マネージド証明書を作成するには、このセクションの手順を完了します。
DNS 認証を作成する
このセクションの説明に沿って、DNS 認証を作成します。*.myorg.example.com
などのワイルドカード証明書用の DNS 認証を作成する場合は、親ドメイン(myorg.example.com
など)の DNS 認証を構成します。
リージョン Google マネージド証明書の場合、DNS 認証タイプは PER_PROJECT_RECORD
にのみ設定されます。
gcloud
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" \ --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
DNS レコード トランザクションを次のように開始します。
gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
DNS_ZONE_NAME
は、ターゲット DNS ゾーンの名前に置き換えます。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"
DNS レコード トランザクションを実行して変更を保存します。
gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
DNS_ZONE_NAME
は、ターゲット DNS ゾーンの名前に置き換えます。
DNS 認証を参照するリージョン Google マネージド証明書を作成する
前の手順で作成した DNS 認証を参照する Google マネージド証明書を作成するには、次の手順に従います。
コンソール
Google Cloud コンソールで、[Certificate Manager] ページに移動します。
表示されたページで、[証明書] タブを選択します。
[証明書を追加] をクリックします。
証明書の名前を入力します。
この名前は、プロジェクト内で一意にする必要があります。
省略可: 証明書の [説明] を入力します。説明は、後で特定の証明書を識別するのに役立ちます。
[ロケーション] で [リージョン] を選択します。
[リージョン] リストでリージョンを選択します。
[証明書の種類] で [Google 管理の証明書を作成する] を選択します。
[認証局の種類] で [パブリック] を選択します。
証明書の [Domain Names] を指定します。移行先ドメインのカンマ区切りリストを入力します。また、各ドメイン名は完全修飾ドメイン名(
myorg.example.com
など)にする必要があります。[認証タイプ] で [DNS 認証] を選択します。ドメイン名に DNS 認証が関連付けられている場合は、自動的に取得されます。ドメイン名に DNS 認証が関連付けられていない場合は、次の操作を行います。
- [見つからない DNS 認証の作成] をクリックして [DNS 認証の作成] ダイアログを表示します。
- [DNS Authorization Name] フィールドに DNS 認証名を指定します。
- [DNS 認証を作成] をクリックします。DNS 名がドメイン名に関連付けられていることを確認します。
証明書に関連付けるラベルを指定します。必要に応じて複数のラベルを追加できます。ラベルを追加するには、[add_box ラベルの追加] ボタンをクリックして、ラベルの
key
とvalue
を指定します。[作成] をクリックします。新しい証明書が証明書のリストに表示されていることを確認します。
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 マネージド証明書を作成したロケーション。
出力は次のようになります。
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 pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- 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
: 証明書の名前。
クリーンアップ
このチュートリアルで行った変更を元に戻すには、次の手順を行います。
- Google マネージド証明書を削除します。
次のように置き換えます:gcloud certificate-manager certificates delete CERTIFICATE_NAME --location=LOCATION
CERTIFICATE_NAME
: 証明書の名前。LOCATION
: Google マネージド証明書を作成したロケーション。
- DNS 認証を削除します。
次のように置き換えます:gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME --location=LOCATION
AUTHORIZATION_NAME
: DNS 認証の名前。LOCATION
: DNS 認証を作成したロケーション。