このチュートリアルでは、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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
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 ロールと権限。
信頼できる第三者認証局(CA)を利用して、証明書とそれに関連付けられた鍵を発行します。
証明書のチェーンとルート信頼が適切に行われていることを確認します。
次の PEM エンコード ファイルを準備します。
- 証明書ファイル(CRT)
- 対応する秘密鍵ファイル(KEY)
Google Cloud コンソールで、[Certificate Manager] ページに移動します。
[証明書] タブで、[証明書を追加] をクリックします。
[証明書名] フィールドに、証明書の一意の名前を入力します。
省略可: [説明] フィールドに証明書の説明を入力します。説明は、証明書を識別するために使用します。
[ロケーション] で [グローバル] を選択します。
[スコープ] で [すべてのリージョン] を選択します。
[証明書の種類] で [セルフマネージド証明書を作成する] を選択します。
[証明書] フィールドについて、次のいずれかを行います。
- [アップロード] ボタンをクリックし、PEM 形式の証明書ファイルを選択します。
- PEM 形式の証明書のコンテンツをコピーして貼り付けます。コンテンツは
-----BEGIN CERTIFICATE-----で始まり、-----END CERTIFICATE-----で終わる必要があります。
[秘密鍵証明書] フィールドで、次のいずれかを行います。
- [アップロード] ボタンをクリックし、秘密鍵を選択します。秘密鍵は PEM 形式で、パスフレーズで保護されていない必要があります。
- PEM 形式の秘密鍵のコンテンツをコピーして貼り付けます。秘密鍵は
-----BEGIN PRIVATE KEY-----で始まり、-----END PRIVATE KEY-----で終わる必要があります。
[ラベル] フィールドで、証明書に関連付けるラベルを指定します。ラベルを追加するには、[ラベルを追加] をクリックして、ラベルのキーと値を指定します。
[作成] をクリックします。
新しい証明書が証明書のリストに表示されます。
CERTIFICATE_NAME: 証明書の名前。CERTIFICATE_FILE: CRT 証明書ファイルのパスとファイル名。PRIVATE_KEY_FILE: KEY 秘密鍵ファイルのパスとファイル名。PROJECT_ID: Google Cloud プロジェクトの IDCERTIFICATE_NAME: 証明書の名前。PEM_CERTIFICATE: 証明書の PEM。PEM_KEY: 鍵の PEM。PROXY_NAME: ターゲット プロキシの名前URL_MAP: URL マップの名前。ロードバランサの作成時に URL マップを作成しました。CERTIFICATE_NAME: 証明書の名前。
必要なロール
このチュートリアルのタスクを完了するための次のロールがあることを確認してください。
詳しくは以下をご覧ください。
ロードバランサを作成する
このチュートリアルでは、ロードバランサのバックエンド、ヘルスチェック、バックエンド サービス、URL マップがすでに作成され、構成されていることを前提としています。このチュートリアルの後半で必要になるため、URL マップの名前をメモしておきます。
クロスリージョン内部アプリケーション ロードバランサを作成していない場合は、VM インスタンス グループのバックエンドを使用してクロスリージョン内部アプリケーション ロードバランサを設定するをご覧ください。
秘密鍵と証明書を作成する
秘密鍵と証明書を作成する手順は、次のとおりです。
証明書をリクエストして検証する方法については、秘密鍵と証明書を作成するをご覧ください。
セルフマネージド証明書を Certificate Manager にアップロードします。
証明書を Certificate Manager にアップロードする手順は次のとおりです。
コンソール
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
以下を置き換えます。
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"
}
}
次のように置き換えます。
セルフマネージド証明書をロードバランサにデプロイする
グローバル セルフマネージド証明書をデプロイするには、証明書をターゲット プロキシに直接関連付けます。
証明書をターゲット プロキシに直接添付する
証明書は、新しいターゲット プロキシまたは既存のターゲット プロキシに接続できます。
証明書を新しいターゲット プロキシに添付するには、gcloud compute
target-https-proxies create コマンドを使用します。
gcloud compute target-https-proxies create PROXY_NAME \
--url-map=URL_MAP \
--certificate-manager-certificates=CERTIFICATE_NAME \
--global
以下を置き換えます。
証明書を既存のターゲット 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 は、ターゲット証明書の名前に置き換えます。
ロードバランサを使用する予定がない場合は、ロードバランサとそのリソースを削除します。ロード バランシングの設定をクリーンアップするをご覧ください。