証明書テンプレートを使用して証明書をリクエストする
このページでは、証明書テンプレートを使用して証明書をリクエストする方法について説明します。
証明書テンプレートを使用すると、証明書の発行に対してきめ細かいポリシー制御を実装できます。たとえば、証明書テンプレートを使用して、組織内の CA プール間でサーバー TLS 証明書の発行を標準化できます。 また、証明書テンプレートを使用して、特定のユーザーなど、より細かいレベルでポリシーを適用することもできます。これは、さまざまな個人が発行できる証明書の種類を制限する必要がある場合に役立ちます。また、一般的な発行シナリオのためにテンプレートを再利用することもできます。
始める前に
証明書テンプレートを使用して証明書を発行するために必要な権限を取得するには、証明書テンプレートに対する CA Service 証明書テンプレート ユーザー(
roles/privateca.templateUser
)の IAM ロールを付与するよう管理者に依頼してください。CA Service の事前定義された IAM ロールの詳細については、IAM を使用したアクセス制御をご覧ください。
プリンシパルに IAM ロールを付与する方法については、単一のロールを付与するをご覧ください。
証明書発行をテスト
証明書テンプレートを使用して署名付き証明書をリクエストする前に、証明書テンプレートが証明書を正常に生成できることを確認することをおすすめします。CA プールの発行ポリシーと証明書テンプレートのポリシーの間に競合がある場合、証明書の発行は失敗します。発行をテストすることで、このような競合を事前に特定して解決できます。 テスト証明書は PEM エンコードされず、署されておらず、生成に対して課金されないことに注意してください。
証明書テンプレートを使用した証明書の発行をテストするには、次の手順を行います。
Console
Google Cloud コンソールの [Certificate Authority Service] ページに移動します。
[テンプレート マネージャー] タブをクリックします。
テストする証明書テンプレートをクリックします。 [テンプレートの詳細] ページが表示されます。
テスト リクエストを作成するには、[証明書を作成] をクリックし、[証明書発行をテスト] をクリックします。証明書のリクエスト フォームが表示されます。
証明書リクエストの作成に必要な次の詳細を指定します。
- リージョン: 証明書のロケーション。これは、CA プールのロケーションと同じである必要があります。
- CA プール: 証明書を発行する CA プール。
- 証明書テンプレート: 証明書の発行に使用するテンプレート。
- ドメイン: SSL または TLS 証明書で保護するサイトのドメイン名。
[証明書を生成] をクリックします。
証明書が作成されたら、[表示] をクリックします。テスト証明書またはサンプル証明書は、同じページの別のパネルに表示されます。
競合により証明書の発行に失敗した場合は、競合を解決し、テスト証明書リクエストを再度送信します。
証明書テンプレートを使用して証明書を発行する
証明書テンプレートを使用して署名付き証明書を発行するには、次の手順を行います。
Console
Google Cloud コンソールの [Certificate Authority Service] ページに移動します。
[テンプレート マネージャー] タブをクリックします。
[証明書テンプレート] ページで、使用する証明書テンプレートをクリックします。 [テンプレートの詳細] ページが表示されます。
[証明書を作成] をクリックします。
リージョンを選択します。 このリージョンは、使用する CA プールのリージョンと同じである必要があります。
CA プールを選択します。
証明書署名リクエスト(CSR)を使用して証明書を生成するには、CSR を使用して証明書をリクエストするをご覧ください。
自動生成された鍵を使用して証明書を生成するには、自動生成された鍵を使用して証明書をリクエストするをご覧ください。
証明書を生成する
- [証明書を生成] をクリックします 証明書が正常に生成されると、メッセージが表示されます。
- 生成された証明書を表示するには、[証明書を表示] をクリックし、[表示] をクリックします。
省略可: 署名付き証明書をダウンロードする
- PEM でエンコードされた証明書チェーンをダウンロードするには、[証明書チェーンをダウンロード] をクリックします。
- 関連付けられた PEM でエンコードされた秘密鍵をダウンロードするには、[秘密鍵をダウンロード] をクリックします。
gcloud
証明書テンプレートを使用して証明書を発行するには、次の形式で --template
フラグを gcloud privateca certificates create
コマンドに追加します。
--template=projects/PROJECT_ID/locations/LOCATION/certificateTemplates/CERTIFICATE_TEMPLATE
CERTIFICATE_TEMPLATE は、この証明書の発行に使用する証明書テンプレートの名前に置き換えます。指定したテンプレートは、発行元の CA プールと同じロケーションに存在する必要があります。詳細については、テスト用 DNS 証明書の生成と本番環境証明書の生成に提供されているサンプルをご覧ください。
Terraform
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
証明書リクエストのリンクを共有する
組織内の他のユーザーが同じパラメータを使用して証明書をリクエストできるように、証明書リクエスト フォームのリンクを共有するには、次の操作を行います。
Console
- Google Cloud コンソールで [CA プール マネージャー] タブに移動し、[リクエスト フォーム共有リンク] をクリックします。
- 表示された [リクエスト フォーム共有リンク] パネルで、リクエストの作成に選択した CA プールと証明書テンプレートを選択します。証明書リクエスト リンクが表示されます。
- リンクをコピーして、必要に応じて共有します。
ポリシーの競合を解決する
CA プールの発行ポリシーと証明書テンプレートの間に競合がある場合、証明書リクエストは無効な引数エラーで失敗します。たとえば、同じ拡張機能(鍵の基本的用途など)が CA プールのベースライン値と証明書テンプレートの事前定義された値で定義されている場合です。または、1 つのポリシーで特定の拡張機能を除外する拡張機能の制約があり、もう 1 つのポリシーでベースライン値にその拡張機能の値を定義している場合です。
ポリシーの競合を表示して解決するには、次の手順に従います。
Console
- エラー メッセージが表示されている [発行ポリシーのトラブルシューティング] リンクをクリックします。トラブルシューティング ページが表示されます。ここで、CA プールの発行ポリシーのベースライン値と拡張機能の制約を、証明書テンプレートのポリシーのベースライン値と拡張機能の制約と比較できます。ポリシーの競合がハイライト表示されています。
- CA プールまたは証明書テンプレートにアクセスして、競合する値を更新し、競合を解決します。
- 競合を解決したら、証明書リクエストを再度送信します。
テンプレートを使用して発行された証明書を表示する
証明書テンプレートを使用して発行された証明書を表示するには、次の操作を行います。
Console
- Google Cloud コンソールで、[テンプレート マネージャー] タブに移動します。
- 証明書の発行に使用した証明書テンプレートをクリックします。
- [テンプレートの詳細] ページで、[証明書] をクリックします。 選択した証明書テンプレートを使用して発行された証明書のリストが表示されます。
次のステップ
- 発行済み証明書を表示する方法を学習する。