Web アプリの App Service 証明書を作成して管理する

この記事では、App Service 証明書を作成して管理 (更新、同期、削除など) する方法を説明します。 App Service 証明書を作成したら、App Service アプリにそれらをインポートできます。 App Service 証明書は、Azure によって管理されるプライベート証明書です。 自動証明書管理のシンプルさと、更新オプションとエクスポート オプションの柔軟性が組み合わされています。

Azure から App Service 証明書を購入する場合、Azure で次のタスクが管理されます。

  • GoDaddy から購入プロセスを処理する。
  • 証明書のドメイン検証を実行する。
  • 証明書を Azure Key Vault に保持する。
  • 証明書の更新を管理する。
  • App Service アプリでインポートしたコピーと証明書を自動的に同期する。

注意

アプリにアップロードされた証明書は、App Service プランのリソース グループ、リージョン、オペレーティング システムの組み合わせ (内部的には "Web 空間" と呼ばれます) にバインドされたデプロイ ユニットに格納されます。 これにより、リソース グループとリージョンの組み合わせが同じである他のアプリが、証明書にアクセスできるようになります。 App Service にアップロードまたはインポートされた証明書は、同じデプロイ ユニット内の App Services と共有されます。

前提条件

注意

現在、App Service 証明書は Azure National Cloud ではサポートされていません。

App Service 証明書を購入して構成する

証明書の購入を開始する

  1. App Service 証明書作成ページに移動して、App Service 証明書の購入を始めます。

    注意

    Azure から購入した App Service 証明書は、GoDaddy によって発行されます。 一部のドメインでは、CAA ドメイン レコード0 issue godaddy.com の値を使用して作成することによって、GoDaddy を証明書の発行者として明示的に許可する必要があります。

    購入オプションを含む [App Service 証明書の作成] ペインのスクリーンショット。

  2. 証明書を構成するときは、次の表を参考にしてください。 完了したら、[確認と作成][作成] の順に選択します。

    設定 説明
    サブスクリプション 証明書に関連付ける Azure サブスクリプション。
    リソース グループ 証明書が格納されるリソース グループ。 新しいリソース グループを作成するか、App Service アプリと同じリソース グループを選択できます。
    SKU 作成する証明書の種類 (標準証明書またはワイルドカード証明書) を決定します。
    ネイキッド ドメインのホスト名 ルート ドメインを指定します。 発行された証明書によって、ルート ドメインと www サブドメインの "両方" が保護されます。 発行される証明書において、[共通名] フィールドはルート ドメインを指定し、[サブジェクトの別名] フィールドは www ドメインを指定します。 任意のサブドメインのみをセキュリティ保護するには、サブドメインの完全修飾ドメイン名 を指定します (例: mysubdomain.contoso.com)。
    証明書名 App Service 証明書のフレンドリ名。
    自動更新の有効化 有効期限が切れる前に証明書を自動的に更新するかどうかを選びます。 更新するごとに証明書の有効期限が1年間延長され、料金はサブスクリプションに課金されます。
  3. デプロイが完了したら、[リソースに移動] を選択します。

証明書を Azure Key Vault に格納する

Key Vault は、クラウド アプリケーションやサービスで使用される暗号化キーとシークレットを保護するための Azure サービスです。 App Service 証明書の場合、最適なストレージは Key Vault です。 証明書購入プロセスの完了後、この証明書を使い始める前に、さらにいくつかのステップを完了する必要があります。

  1. App Service 証明書のページで証明書を選びます。 証明書のメニューで、[証明書の構成]>[手順 1: 格納] を選びます。

    [証明書の構成] ペインで [手順 1: 格納] が選ばれているスクリーンショット。

  2. [キー コンテナーの状態] ページで、[キー コンテナーから選ぶ] を選択します。

  3. 新しいコンテナーを作成する場合は、次の表に基づいてコンテナーを設定します。App Service アプリと同じサブスクリプションとリソース グループを必ず使ってください。

    設定 説明
    リソース グループ 推奨: App Service 証明書と同じリソース グループ。
    キー コンテナー名 英数字とダッシュだけを使用する一意の名前。
    リージョン App Service アプリと同じ場所。
    価格レベル 詳しくは、Azure Key Vault の価格の詳細に関するページをご覧ください。
    削除されたボールトを保持する日数 削除後、オブジェクトが復旧可能な状態に維持される日数 (「Azure Key Vault の論理的な削除の概要」を参照)。 7 から 90 の値を設定します。
    消去保護 論理的に削除された st オブジェクトが手動で消去されないようにします。 このオプションを有効にすると、すべての削除済みオブジェクトが、保持期間全体にわたって論理的に削除された状態に維持されます。
  4. [次へ] を選択し、[コンテナー アクセス ポリシー] を選択します。 現在、App Service 証明書でサポートされているのは Key Vault のアクセス ポリシーのみであり、RBAC モデルはサポートされていません。

  5. [Review + create](確認と作成) を選択し、次に [作成] を選択します。

  6. キー コンテナーが作成されたら、[リソースに移動] を選択せず、[Select key vault from Azure Key Vault] (Azure Key Vault からキー コンテナーを選択する) ページがリロードされるまで待ちます。

  7. [選択] を選択します。

  8. コンテナーを選んだ後、[Key Vault リポジトリ] ページを閉じます。 [手順 1: 格納] オプションに、成功を示す緑色のチェック マークが表示されます。 次の手順のためにページは開いたままにしておきます。

ドメインの所有権を確認する

  1. 前のセクションと同じ [証明書の構成] ページから、[手順 2: 確認] を選びます。

    [証明書の構成] ペインで [手順 2: 確認] が選択されているスクリーンショット。

  2. [App Service の確認] を選択します。 ただし、前に前提条件に従ってドメインを Web アプリにマップしたため、ドメインは既に検証されています。 このステップを完了するには、[確認] を選び、[証明書はドメイン確認済みです] というメッセージが表示されるまで [最新の情報に更新] を選びます。

次のドメイン検証方法がサポートされています。

メソッド 説明
App Service 検証 ドメインが同じサブスクリプションの App Service アプリに既にマップされている場合は、App Service アプリでドメインの所有権が既に確認されているため、最も便利なオプションです。 「ドメインの所有権を確認する」の最後のステップをご覧ください。
ドメイン検証 Azure から購入した App Service ドメインを確認します。 Azure は確認 TXT レコードを自動的に追加し、プロセスを完了します。
メールによる確認 ドメイン管理者にメールを送信することによってドメインを確認します。 手順は、オプションを選択したときに提供されます。
手動による確認 DNS TXT レコードまたは HTML ページを使ってドメインを確認します。これは、次の注に従う標準証明書にのみ適用されます。 この手順は、オプションを選択した後に提供されます。 HTML ページのオプションは、"HTTPS のみ" が有効になっている Web アプリでは機能しません。 ルート ドメイン (例: "contoso.com") またはサブドメイン (例: "www.contoso.com"、"test.api.contoso.com") のいずれかの DNS TXT レコードを使用したドメイン検証の場合、証明書の SKU に関係なく、名前に '@' を使用してルートドメイン レベルで TXT レコードを追加し、DNS レコードの値にドメイン検証トークンを設定する必要があります。

重要

標準証明書の場合、要求した最上位のドメインと "共に" www サブドメイン (contoso.comwww.contoso.com など) の証明書が提供されます。 ただし、App Service 検証手動検証の両方で HTML ページの検証が使用され、証明書の発行、キー変更、または更新時に www サブドメインがサポートされません。 標準証明書では、ドメイン検証メール検証が使用され、要求された最上位のドメインと共に www サブドメインが証明書に含まれます。

証明書がドメイン検証されたら、App Service アプリにインポートできます

App Service 証明書を更新する

既定では、App Service 証明書の有効期間は 1 年です。 有効期限が近づいたら、自動または手動により App Service 証明書を 1 年単位で更新できます。 実質的に、証明書更新プロセスによって新しい App Service 証明書が提供され、有効期限が既存の証明書の有効期限から 1 年間延長されます。

注意

2021 年 9月 23 日以降、過去 395 日間にドメインを確認していない場合は、App Service 証明書の更新またはキー更新のプロセスの間にドメインを確認する必要があります。 新しい証明書のオーダーは、ドメインの確認が完了するまで、更新またはキー更新プロセスの間 "発行保留中" モードのままになります。

無料の App Service マネージド証明書とは異なり、App Service 証明書のドメインの再確認は自動化 "されません"。 ドメインの所有権を確認しないと、更新が失敗します。 App Service 証明書を確認する方法について詳しくは、「ドメインの所有権を確認する」をご覧ください。

更新プロセスでは、App Service の既知のサービス プリンシパルがキー コンテナーに対して必要なアクセス許可を持っている必要があります。 これらのアクセス許可は、Azure portal を使って App Service 証明書をインポートするときに自動的に設定されます。 お使いのキー コンテナーからこれらのアクセス許可を削除しないようにしてください。

  1. App Service 証明書の自動更新設定を変更するには、App Service 証明書のページで証明書を選びます。

  2. 左側のメニューで、[自動更新の設定] を選びます。

  3. [オン] または [オフ] を選んで、[保存] を選びます。

    自動更新をオンにすると、証明書は有効期限の 32 日前に自動更新を開始できます。

    指定した証明書の自動更新の設定のスクリーンショット。

  4. 証明書を手動で更新するには、[手動更新] を選びます。 有効期限の 60 日前に、証明書の手動更新を要求できますが、最大有効期限は 397 日になります

  5. 更新操作が完了したら、[同期] を選びます。

    同期操作によって、アプリにダウンタイムを発生させることなく、App Service 内の証明書に対するホスト名のバインドが自動的に更新されます。

    注意

    [同期] を選ばないと、証明書は 24 時間以内に App Service によって自動的に同期されます。

キー更新と App Service 証明書

証明書の秘密キーが侵害されたと思われる場合は、証明書のキー更新を実行できます。 これを行うと、証明書と証明機関から発行された新しいキーが展開されます。

  1. App Service 証明書のページで証明書を選びます。 左側のメニューから [キー更新と同期] を選びます。

  2. プロセスを始めるには、[キー更新] を選びます。 処理が完了するまでに 1 ~ 10 分かかることがあります。

    App Service 証明書のキー更新のスクリーンショット。

  3. ドメインの所有権の再確認が必要になる場合もあります。

  4. キー更新操作が完了したら、[同期] を選びます。

    同期操作によって、アプリにダウンタイムを発生させることなく、App Service 内の証明書に対するホスト名のバインドが自動的に更新されます。

    注意

    [同期] を選ばないと、証明書は 24 時間以内に App Service によって自動的に同期されます。

App Service 証明書をエクスポートする

App Service 証明書は Key Vault シークレットであるため、コピーを PFX ファイルとしてエクスポートし、他の Azure サービスまたは Azure の外部で使うことができます。

重要

エクスポートされた証明書はアンマネージド成果物です。 App Service 証明書が更新されるとき、そのような成果物は App Service によって同期されません。 必要に応じて、更新された証明書をエクスポートしてインストールする必要があります。

  1. App Service 証明書のページで証明書を選びます。

  2. 左側のメニューで、[証明書のエクスポート] を選びます。

  3. [Open Key Vault Secret] (Key Vault シークレットを開く) を選択します。

  4. 証明書の現在のバージョンを選びます。

  5. [証明書としてダウンロード] を選択します。

ダウンロードした PFX ファイルは、公開証明書とプライベート証明書の両方を含む未加工の PKCS12 ファイルであり、インポート パスワードは空の文字列です。 パスワード フィールドを空のままにすることで、ファイルをローカル環境にインストールできます。 ファイルはパスワードで保護されていないため、ファイルをそのまま App Service にアップロードすることはできません。

App Service 証明書を削除する

App Service 証明書を削除する場合、削除操作を元に戻すことはできません。 その結果、証明書は取り消され、この証明書を使用する App Service 内のすべてのバインドが無効になります。

  1. App Service 証明書のページで証明書を選びます。

  2. 左側のメニューから、[概要]>[削除] を選びます。

  3. 確認ボックスが開いたら、証明書名を入力して、[OK] を選びます。

よく寄せられる質問

App Service 証明書の値が Key Vault にありません

App Service 証明書がまだドメイン検証されていない可能性があります。 ドメインの所有権が確認されるまで、App Service 証明書は使用できません。 キー コンテナー シークレットとしてタグ Initialize が保持され、その値とコンテンツの種類は空のままになります。 ドメインの所有権が確認されると、キー コンテナー シークレットに値とコンテンツの種類が表示され、タグが Ready に変わります。

PowerShell で App Service 証明書をエクスポートできません

App Service 証明書がまだドメイン検証されていない可能性があります。 ドメインの所有権が確認されるまで、App Service 証明書は使用できません。

App Service 証明書の作成プロセスによって、既存の Key Vault にどのような変更が生じますか?

作成プロセスにより、以下の変更が生じます。

  • コンテナーに、以下 2 つのアクセス ポリシーが追加されます。
    • Microsoft.Azure.WebSites (または Microsoft Azure App Service)
    • Microsoft 証明書リセラー CSM リソース プロバイダー (または Microsoft.Azure.CertificateRegistration)
  • キー コンテナーが誤って削除されないように、AppServiceCertificateLock という名前のコンテナーの削除ロックが作成されます。

その他のリソース