このチュートリアルでは、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 インスタンス グループのバックエンドを使用してリージョン外部アプリケーション ロードバランサを設定するをご覧ください。
リージョン内部アプリケーション ロードバランサを作成するには、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" \ --location="LOCATION"
次のように置き換えます。
CERTIFICATE_NAME
: 証明書の名前。CERTIFICATE_FILE
: CRT 証明書ファイルのパスとファイル名。PRIVATE_KEY_FILE
: KEY 秘密鍵ファイルのパスとファイル名。LOCATION
: ターゲットの Google Cloud ロケーション。
Terraform
セルフマネージド証明書をアップロードするには、self_managed
ブロックで google_certificate_manager_certificate
リソースを使用します。
API
次のように、certificates.create
メソッドに POST
リクエストを送信して証明書をアップロードします。
POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?certificate_id=CERTIFICATE_NAME { self_managed: { pem_certificate: "PEM_CERTIFICATE", pem_private_key: "PEM_KEY", } }
次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの ID。CERTIFICATE_NAME
: 証明書の名前。PEM_CERTIFICATE
: 証明書 PEM。PEM_KEY
: 鍵の PEM。LOCATION
: ターゲットの Google Cloud ロケーション。
セルフマネージド証明書をロードバランサにデプロイする
セルフマネージド証明書をデプロイするには、ターゲット プロキシに直接関連付けます。
証明書をターゲット プロキシに直接添付する
証明書は、新しいターゲット プロキシまたは既存のターゲット プロキシにアタッチできます。
証明書を新しいターゲット プロキシに接続するには、gcloud compute
target-https-proxies create
コマンドを使用します。
gcloud compute target-https-proxies create PROXY_NAME \ --certificate-manager-certificates=CERTIFICATE_NAME \ --url-map=URL_MAP \ --region=LOCATION
次のように置き換えます。
PROXY_NAME
: ターゲット プロキシの名前CERTIFICATE_NAME
: 証明書の名前。URL_MAP
: URL マップの名前。ロードバランサの作成時に URL マップを作成しました。LOCATION
: HTTPS ターゲット プロキシを作成するターゲット Google Cloud のロケーション。
既存のターゲット HTTPS プロキシに証明書を接続するには、gcloud
compute target-https-proxies update
コマンドを使用します。既存のターゲット プロキシの名前がわからない場合は、[ターゲット プロキシ] ページに移動して、ターゲット プロキシの名前をメモします。
gcloud compute target-https-proxies update PROXY_NAME \ --region=LOCATION \ --certificate-manager-certificates=CERTIFICATE_NAME
ターゲット プロキシを作成または更新したら、次のコマンドを実行して確認します。
gcloud compute target-https-proxies list
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、アップロードした証明書を削除します。
gcloud certificate-manager certificates delete CERTIFICATE_NAME
CERTIFICATE_NAME
は、ターゲット証明書の名前に置き換えます。
ロードバランサを使用する予定がない場合は、ロードバランサとそのリソースを削除します。ロード バランシングの設定をクリーンアップするをご覧ください。