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 アプリを作成します。 アプリの App Service プランは、Basic、Standard、Premium、または Isolated レベルである必要があります。 レベルを更新するには、アプリのスケールアップに関する記事を参照してください。
注意
現在、App Service 証明書は Azure 国内クラウドではサポートされていません。
App Service 証明書を購入して構成する
証明書を購入する
[App Service 証明書の作成] ページに移動し、購入を開始します。
Note
Azure から購入した App Service 証明書は、GoDaddy によって発行されます。 一部のドメインでは、値
0 issue godaddy.com
を使用して CAA ドメイン レコードを作成し、GoDaddy を証明書の発行者として明示的に許可する必要があります。証明書を構成するには、次の表を参考にしてください。 完了したら、[確認と作成]、[作成] の順に選択します。
設定 説明 サブスクリプション 証明書に関連付ける Azure サブスクリプション。 リソース グループ 証明書が格納されるリソース グループ。 新しいリソース グループを作成するか、App Service アプリと同じリソース グループを選択できます。 SKU 作成する証明書の種類 (標準証明書またはワイルドカード証明書) を決定します。 ネイキッド ドメインのホスト名 ルート ドメインを指定します。 発行された証明書によって、ルート ドメインと www
サブドメインの "両方" が保護されます。 発行される証明書において、[共通名] フィールドはルート ドメインを指定し、[サブジェクトの別名] フィールドはwww
ドメインを指定します。 サブドメインのみをセキュリティ保護するには、そのサブドメインの完全修飾ドメイン名 (例:mysubdomain.contoso.com
) を指定します。証明書名 App Service 証明書のフレンドリ名。 自動更新の有効化 有効期限が切れる前に証明書を自動的に更新するかどうかを選びます。 更新するたびに証明書の有効期限が 1 年間延長されます。 料金はサブスクリプションに課金されます。 デプロイが完了したら、[リソースに移動] を選択します。
証明書を Azure Key Vault に格納する
Key Vault は、クラウド アプリケーションやサービスで使用される暗号化キーとシークレットを保護するための Azure サービスです。 App Service 証明書の場合は、Key Vault を使用することをお勧めします。 証明書購入プロセスを完了したら、証明書を使い始める前に、さらにいくつかの手順を完了する必要があります。
App Service 証明書のページで証明書を選びます。 証明書のメニューで、[証明書の構成]>[手順 1: 格納] を選びます。
[キー コンテナーの状態] ページで、[キー コンテナーから選ぶ] を選択します。
新しいコンテナーを作成する場合は、次の表に基づいてコンテナーを設定します。App Service アプリと同じサブスクリプションとリソース グループを必ず使ってください。
設定 説明 リソース グループ 推奨: App Service 証明書と同じリソース グループ。 キー コンテナー名 英数字とダッシュだけを使用する一意の名前。 リージョン App Service アプリと同じ場所。 価格レベル 詳しくは、Azure Key Vault の価格の詳細に関するページをご覧ください。 削除されたボールトを保持する日数 削除後、オブジェクトが復旧可能な状態に維持される日数 (「Azure Key Vault の論理的な削除の概要」を参照)。7 から 90 までの値を設定します。 消去保護 このオプションを有効にすると、すべての削除済みオブジェクトが、保持期間全体にわたって論理的に削除された状態に維持されます。 [次へ] を選択し、[コンテナー アクセス ポリシー] を選択します。 現在、App Service 証明書でサポートされているのは Key Vault のアクセス ポリシーのみであり、RBAC モデルはサポートされていません。
[確認と作成] を選択し、次に [作成] を選択します。
キー コンテナーが作成された後は、[リソースに移動] を選択しないでください。 [Azure Key Vault からキー コンテナーを選択する] ページが再読み込みされるまで待ちます。
[選択] を選択します。
コンテナーを選んだ後、[Key Vault リポジトリ] ページを閉じます。 [手順 1: 格納] オプションに、成功を示す緑色のチェック マークが表示されます。 次の手順のためにページは開いたままにしておきます。
ドメインの所有権を確認する
前のセクションと同じ [証明書の構成] ページで、[手順 2: 確認] を選択します。
[App Service の確認] を選択します。 このセクションで先ほどドメインを Web アプリにマップしたため、ドメインは既に検証されています。 このステップを完了するには、[確認] を選び、[証明書はドメイン確認済みです] というメッセージが表示されるまで [最新の情報に更新] を選びます。
次のドメイン検証方法がサポートされています。
メソッド | 説明 |
---|---|
App Service 検証 | ドメインが同じサブスクリプションの App Service アプリに既にマップされている場合は、App Service アプリでドメインの所有権が既に確認されているため、最も便利なオプションです。 「ドメインの所有権を確認する」の最後のステップをご覧ください。 |
ドメイン検証 | Azure から購入した App Service ドメインを確認します。 Azure は確認 TXT レコードを自動的に追加し、プロセスを完了します。 |
メールによる確認 | ドメイン管理者にメールを送信することによってドメインを確認します。 手順は、オプションを選択したときに提供されます。 |
手動による確認 | DNS TXT レコードまたは HTML ページのいずれかを使用して、ドメインを確認します (後者は、Standard 証明書にのみ適用されます。下記の注を参照してください)。この手順は、オプションを選択した後に提供されます。 HTML ページ オプションは、[HTTPS のみ] が有効になっている Web アプリでは機能しません。 ルート ドメイン (例: contoso.com ) またはサブドメイン (例: www.contoso.com 、test.api.contoso.com ) のいずれかの DNS TXT レコードを使用したドメイン検証の場合、証明書の SKU に関係なく、名前に @ を使用し、DNS レコードの値にドメイン検証トークンを使用して、ルート ドメイン レベルで TXT レコードを追加する必要があります。 |
重要
Standard 証明書の場合、要求したトップレベル ドメインと "共に" www
サブドメイン (例: contoso.com
、www.contoso.com
など) の証明書が提供されます。 ただし、App Service 検証と手動検証のどちらも HTML ページの検証を使用します。この検証では、証明書の発行、キー変更、または更新時に www
サブドメインはサポートされません。 Standard 証明書の場合、ドメイン検証とメール検証を使用して、要求されたトップレベル ドメインと共に 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 証明書をインポートするときに自動的に設定されます。 お使いのキー コンテナーからこれらのアクセス許可を削除しないようにしてください。
App Service 証明書の自動更新設定を変更するには、App Service 証明書のページで証明書を選びます。
左側のメニューで、[自動更新の設定] を選びます。
[オン] または [オフ] を選択し、[保存] を選択します。
自動更新をオンにすると、証明書は有効期限の 32 日前に自動更新を開始できます。
証明書を手動で更新するには、[手動更新] を選びます。 有効期限の 60 日前に、証明書の手動更新を要求できますが、証明書は 397 日を超えて発行することはできません。
更新操作が完了したら、[同期] を選びます。
同期操作によって、アプリにダウンタイムを発生させることなく、App Service 内の証明書に対するホスト名のバインドが自動的に更新されます。
注意
[同期] を選ばないと、証明書は 24 時間以内に App Service によって自動的に同期されます。
App Service 証明書をキー更新する
証明書の秘密キーが侵害されたと思われる場合は、証明書のキー更新を実行できます。 この処置により、証明書と証明機関から発行された新しい証明書がローテーションされます。
App Service 証明書のページで証明書を選びます。 左側のメニューから [キー更新と同期] を選びます。
プロセスを始めるには、[キー更新] を選びます。 処理が完了するまでに 1 ~ 10 分かかることがあります。
ドメインの所有権の再確認が必要になる場合もあります。
キー更新操作が完了したら、[同期] を選びます。
同期操作によって、アプリにダウンタイムを発生させることなく、App Service 内の証明書に対するホスト名のバインドが自動的に更新されます。
注意
[同期] を選ばないと、証明書は 24 時間以内に App Service によって自動的に同期されます。
App Service 証明書をエクスポートする
App Service 証明書は Key Vault シークレットであるため、コピーを PFX ファイルとしてエクスポートし、他の Azure サービスまたは Azure の外部で使うことができます。
重要
エクスポートされた証明書はアンマネージド成果物です。 App Service 証明書が更新されるとき、そのような成果物は App Service によって同期されません。 必要に応じて、更新された証明書をエクスポートしてインストールする必要があります。
App Service 証明書のページで証明書を選びます。
左側のメニューで、[証明書のエクスポート] を選びます。
[Open Key Vault Secret] (Key Vault シークレットを開く) を選択します。
証明書の現在のバージョンを選びます。
[証明書としてダウンロード] を選択します。
ダウンロードした PFX ファイルは、公開証明書とプライベート証明書の両方を含む未加工の PKCS12 ファイルであり、インポート パスワードは空の文字列です。 パスワード フィールドを空のままにすることで、ファイルをローカル環境にインストールできます。 ファイルはパスワードで保護されていないため、ファイルをそのまま App Service にアップロードすることはできません。
App Service 証明書を削除する
App Service 証明書を削除する場合、削除操作を元に戻すことはできません。 その結果、証明書は取り消され、その証明書を使用する App Service 内のすべてのバインドが無効になります。
App Service 証明書のページで証明書を選びます。
左側のメニューから、[概要]>[削除] を選びます。
確認ボックスが開いたら、証明書名を入力し、[OK] を選択します。
よく寄せられる質問
App Service 証明書の値が Key Vault にありません
App Service 証明書がまだドメイン検証されていない可能性があります。 ドメインの所有権が確認されるまで、App Service 証明書は使用できません。 Key Vault シークレットとしてタグ Initialize
が保持され、その値とコンテンツの種類は空のままになります。 ドメインの所有権が確認されると、キー コンテナー シークレットに値とコンテンツの種類が表示され、タグが Ready
に変わります。
PowerShell で App Service 証明書をエクスポートできません
App Service 証明書がまだドメイン検証されていない可能性があります。 ドメインの所有権が確認されるまで、App Service 証明書は使用できません。
App Service 証明書の作成プロセスによって、既存のキー コンテナーにどのような変更が加えられますか?
作成プロセスにより、以下の変更が生じます。
- コンテナーに、以下 2 つのアクセス ポリシーが追加されます。
- Microsoft.Azure.WebSites (または
Microsoft Azure App Service
) - Microsoft 証明書リセラー CSM リソース プロバイダー (または
Microsoft.Azure.CertificateRegistration
)
- Microsoft.Azure.WebSites (または
- キー コンテナーが誤って削除されるのを防ぐために、コンテナーに
AppServiceCertificateLock
という名前の削除ロックを作成します。