このチュートリアルでは、Certificate Manager を使用して、クロスリージョン内部アプリケーション ロードバランサにグローバル セルフマネージド証明書をデプロイする方法について説明します。
グローバル外部ロードバランサまたはリージョン ロードバランサにデプロイする場合は、以下をご覧ください。
目標
このチュートリアルでは、次のタスクを行う方法を説明します。
- セルフマネージド証明書を Certificate Manager にアップロードします。
- ターゲット HTTPS プロキシを使用して、サポートされているロードバランサに証明書をデプロイします。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
必要なロール
このチュートリアルのタスクを完了するための次のロールがあることを確認してください。
- Certificate Manager オーナー(
roles/certificatemanager.owner
): Certificate Manager リソースの作成と管理に必要です。 - Compute ロードバランサ管理者(
roles/compute.loadBalancerAdmin
)または Compute ネットワーク管理者(roles/compute.networkAdmin
): HTTPS ターゲット プロキシの作成と管理に必要です。
詳しくは以下をご覧ください。
- Certificate Manager のロールと権限。
- Compute Engine の Compute Engine の IAM ロールと権限。
ロードバランサを作成する
このチュートリアルでは、ロードバランサのバックエンド、ヘルスチェック、バックエンド サービス、URL マップをすでに作成して構成していることを前提としています。このチュートリアルの後半で必要になるため、URL マップの名前をメモしておきます。
クロスリージョン内部アプリケーション ロードバランサをまだ作成していない場合は、VM インスタンス グループのバックエンドを使用したクロスリージョン内部アプリケーション ロードバランサの設定をご覧ください。
秘密鍵と証明書を作成する
秘密鍵と証明書を作成するには、次の操作を行います。
信頼できる第三者認証局(CA)を利用して、証明書とそれに関連付けられた鍵を発行します。
証明書のチェーンとルート信頼が適切に行われていることを確認します。
次の PEM エンコード ファイルを準備します。
- 証明書ファイル(CRT)
- 対応する秘密鍵ファイル(KEY)
証明書のリクエストと検証の方法については、秘密鍵と証明書を作成するをご覧ください。
セルフマネージド証明書を Certificate Manager にアップロードします。
証明書を Certificate Manager にアップロードする手順は次のとおりです。
コンソール
Google Cloud コンソールで、[Certificate Manager] ページに移動します。
[証明書] タブで、[証明書を追加] をクリックします。
[証明書名] フィールドに、証明書の一意の名前を入力します。
省略可: [説明] フィールドに証明書の説明を入力します。説明で証明書を識別できます。
[ロケーション] で [グローバル] を選択します。
[スコープ] で [すべてのリージョン] を選択します。
[証明書の種類] で [セルフマネージド証明書を作成する] を選択します。
[証明書] フィールドで、次のいずれかを行います。
- [アップロード] ボタンをクリックし、PEM 形式の証明書ファイルを選択します。
- PEM 形式の証明書のコンテンツをコピーして貼り付けます。コンテンツは
-----BEGIN CERTIFICATE-----
で始まり、-----END CERTIFICATE-----
で終わる必要があります。
[秘密鍵証明書] フィールドで、次のいずれかを行います。
- [アップロード] ボタンをクリックし、秘密鍵を選択します。秘密鍵は PEM 形式で、パスフレーズで保護されていない必要があります。
- PEM 形式の秘密鍵のコンテンツをコピーして貼り付けます。秘密鍵は
-----BEGIN PRIVATE KEY-----
で始まり、-----END PRIVATE KEY-----
で終わる必要があります。
[ラベル] フィールドに、証明書に関連付けるラベルを指定します。ラベルを追加するには、[
ラベルを追加] をクリックして、ラベルのキーと値を指定します。[作成] をクリックします。
新しい証明書が証明書のリストに表示されます。
gcloud
クロスリージョン セルフマネージド証明書を作成するには、certificate-manager certificates create
コマンドを使用します。
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --certificate-file="CERTIFICATE_FILE" \ --private-key-file="PRIVATE_KEY_FILE" \ --scope=all-regions
次のように置き換えます。
CERTIFICATE_NAME
: 証明書の名前。CERTIFICATE_FILE
: CRT 証明書ファイルのパスとファイル名。PRIVATE_KEY_FILE
: KEY 秘密鍵ファイルのパスとファイル名。
Terraform
セルフマネージド証明書をアップロードするには、self_managed
ブロックで google_certificate_manager_certificate
リソースを使用します。
API
次のように、certificates.create
メソッドに POST
リクエストを送信して証明書をアップロードします。
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME { self_managed: { pem_certificate: "PEM_CERTIFICATE", pem_private_key: "PEM_KEY", scope: "ALL_REGIONS" } }
次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの ID。CERTIFICATE_NAME
: 証明書の名前。PEM_CERTIFICATE
: 証明書 PEM。PEM_KEY
: 鍵の PEM。
セルフマネージド証明書をロードバランサにデプロイする
グローバル セルフマネージド証明書をデプロイするには、証明書をターゲット プロキシに直接関連付けます。
証明書をターゲット プロキシに直接添付する
証明書マップは、新しいターゲット プロキシまたは既存のターゲット プロキシに接続できます。
証明書マップを新しいターゲット プロキシに添付するには、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
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、アップロードした証明書を削除します。
gcloud certificate-manager certificates delete CERTIFICATE_NAME
CERTIFICATE_NAME
は、ターゲット証明書の名前に置き換えます。
ロードバランサを使用する予定がない場合は、ロードバランサとそのリソースを削除します。ロード バランシングの設定をクリーンアップするをご覧ください。