Azure App Service で Web アプリのドメインまたは TLS/SSL 証明書を設定すると、次の一般的な問題が発生する可能性があります。 この記事では、これらの問題の考えられる原因と解決策について説明します。
この記事の情報に加えて、 Microsoft Q & A および Stack Overflow フォーラムで Azure の専門家に問い合わせて、さらに支援を得ることができます。 または、Azure サポート サイトで Azure サポート インシデントを提出することもできます。 [ サポートを受ける] を選択します。
メモ
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
証明書に関する問題
アプリに対する TLS/SSL 証明書のバインディングを作成できない
症状
TLS バインディングを追加するときに、次のエラー メッセージが表示されます。
"SSL バインディングを追加できませんでした。 既存の VIP の証明書は設定できません。別の VIP が既にその証明書を使用しています。"
原因
この問題は、複数のアプリにわたって、同じ IP アドレスへの IP ベースの TLS/SSL バインドが複数ある場合に発生する可能性があります。 たとえば、アプリ A に、古い証明書にバインドされた IP ベースの TLS/SSL があるとします。 アプリ B に、同じ IP アドレスの新しい証明書にバインドされた IP ベースの TLS/SSL があるとします。 新しい証明書でアプリの TLS バインドを更新すると、同じ IP アドレスが別のアプリに使用され、エラー メッセージが表示されるため、更新は失敗します。
解決策
この問題を解決するには、次のいずれかの方法を試してください。
- 古い証明書を使用しているアプリで、IP ベースの TLS/SSL のバインドを削除します。
- 新しい証明書を使用する、新しい IP ベースの TLS/SSL バインドを作成します。
証明書を削除できない
症状
証明書を削除しようとすると、次のエラー メッセージが表示されます。
"証明書は、TLS/SSL バインディングで使用されているため、削除できません。 証明書を削除できるようにするには、先に TLS バインディングを削除する必要があります。"
原因
この問題は、別のアプリがその証明書を使用している場合に発生する可能性があります。
解決策
- アプリからその証明書の TLS バインディングを削除します。
- 証明書の削除を試みます。
- それでも証明書を削除できない場合は、インターネット ブラウザーのキャッシュをクリアし、新しいブラウザー ウィンドウで再度 Azure portal を開きます。 その後で証明書の削除を試みます。
App Service 証明書を購入できない
症状
Azure portal で Azure App Service 証明書を購入できません。
原因と解決策
この問題は、次のいずれかの理由で発生することがあります。
App Service プランは無料または共有の価格レベルであり、TLS はサポートされていません。
解決策: アプリの App Service プランを Standard にアップグレードします。
サブスクリプションに有効なクレジット カードが登録されていない。
解決策:サブスクリプションに有効なクレジット カードを追加します。
サブスクリプション オファーでは、App Service 証明書の購入はサポートされていません。 例: Microsoft Student。
解決策:サブスクリプションをアップグレードします。
サブスクリプションが、許可された購入制限に達しました。
解決策: App Service 証明書には、従量課金制サブスクリプションと Enterprise Agreement サブスクリプションの種類に対して 10 個の証明書購入の制限があります。 その他のサブスクリプションの種類の場合、上限は 3 件です。 この上限を増やすには、Azure サポートへお問い合わせください。
App Service 証明書が不正であるとマークされて、 次のエラーメッセージが表示されました。「証明書が不正の可能性があるとしてフラグされました。」 現在、リクエストが審査中です。 証明書が24時間以内に使用可能にならない場合は、Azureサポートに問い合わせてください。
解決策:証明書が不正であるとマークされて 24 時間以内に解決されない場合は、以下の手順に従ってください。
Azure portal にサインインします。
[App Service 証明書] に移動して、証明書を選択します。
[証明書の構成]>[手順 2: 確認]>[ドメインの検証] と選択します。 この手順により、問題を解決するため、Azure の証明書プロバイダーに電子メールの通知が送信されます。
App Service 証明書は更新されたが、アプリに古い証明書が表示される
症状
App Service 証明書が更新されましたが、その App Service 証明書を使用するアプリが、まだ古い証明書を使用しています。 HTTPS プロトコルが必要であるという警告が表示される場合もあります。
原因 1: キー ボールトのアクセス ポリシー権限がない
App Service 証明書の格納に使用するキー コンテナーに、 Microsoft.Azure.Websites
と Microsoft.Azure.CertificateRegistration
のキー コンテナーに対するアクセス ポリシーのアクセス許可がありません。 サービス プリンシパルと、キー コンテナーへのアクセスに必要なそのアクセス許可は、次のとおりです。
サービス プリンシパル | 秘密のアクセス許可 | 証明書のアクセス許可 |
---|---|---|
Microsoft Azure アプリ サービス | 取得 | 取得 |
Microsoft.Azure.CertificateRegistration (英語) | 取得、リスト、削除 | 取得、一覧表示 |
解決方法 1: キー ボールトのアクセス ポリシーを変更する
キー コンテナーのアクセス ポリシーを変更するには、次の手順に従います。
- Azure portal にサインインします。 App Service 証明書で使用されるキー コンテナーを選択します。 アクセス ポリシーに移動します。
- 2 つのサービス プリンシパルが一覧に表示されない場合は、それらを追加する必要があります。 使用可能な場合は、アクセス許可に推奨されるシークレットと証明書のアクセス許可が含まれているかどうかを確認します。
- [作成] を選択してサービス プリンシパルを追加します。 次に、Secretの権限とCertificateの権限について必要なものを選択します。
- サービス プリンシパルの場合は、検索ボックスから取得した値を入力します。 次に、サービス プリンシパルを選択します。
原因 2: アプリ サービスが新しい証明書と同期されていない
アプリサービスでは、48時間以内に自動的に証明書を同期します。 証明書の交換や更新を行うときには、アプリケーションが今までどおり古い証明書を取得していて、新しく更新された証明書を取得していないことがあります。 これは、証明書リソースを同期するジョブが実行されていないために発生します。 この問題を解決するには、証明書を手動で同期します。 同期を手動で実行すると、アプリにダウンタイムを発生させることなく、App Service の証明書のホスト名バインドが更新されます。
解決方法2:証明書を強制的に同期させる
証明書の同期を強制するには、次の手順を実行します:
- Azure portal にサインインします。 [App Service 証明書] を選択し、次に目的の証明書を選択します。
- [キー更新と同期] を選択してから、 [同期] を選択します。同期が完了するまでしばらく時間がかかります。
- 同期が完了すると、"すべてのリソースが最新の証明書で正常に更新されました" という通知が表示されます。
App Service に間違った証明書が表示されている
症状
App Service を参照しているときに、間違った証明書が表示されます。
原因
この問題は、IP SSL とサーバー名表示 (SNI) の両方のバインドが App Service 用に構成されている場合に発生する可能性があります。 SNI 以外のクライアントが IP SSL エンドポイントにヒットすると、IP SSL 証明書がキャッシュされます。 SNI 対応クライアントがサイトにアクセスした場合でも、IP SSL 証明書が提示されるため、無効な証明書が表示されることになります。
解決策
SNI 以外のクライアントがある場合は、IP SSL バインドと共に SNI バインドを使用せず、カスタム ドメイン URL 経由で常に Web サイトを参照してください。 SNI バインディングを使用する必要がある場合は、サイトに対して構成されているすべての URL (SNI バインディングを含む) を保護するために、IP SSL バインディングにバインドされている証明書が発行されていることを確認します。 他のすべてのバインドに対して同じ証明書を構成します。 この動作は仕様です。
カスタム ドメインに関する問題
カスタム ドメインから 404 エラーが返される
症状
カスタム ドメイン名を使用してサイトを参照すると、"エラー 404 - Web アプリが見つかりません" というエラー メッセージが表示されます。
原因と解決策
原因 1
構成済みのカスタム ドメインに CNAME record
または A record
がありません。
原因 1 の解決策
-
A record
を追加した場合は、TXT record
も追加されていることを確認します。 詳細については、「DNS レコードを作成する」を参照してください。 - アプリにルート ドメインを使用する必要がない場合は、
CNAME record
ではなくA record
を使用することをお勧めします。 - 同じドメインに対して
CNAME record
とA record
の両方を使用しないでください。 この問題によって競合が発生し、ドメインの解決が妨げられる場合があります。
原因 2
インターネット ブラウザーが、ドメインの古い IP アドレスをまだキャッシュしている可能性があります。
原因 2 の解決策
ブラウザーをクリアします。 Windows デバイスの場合は、ipconfig /flushdns
コマンドを実行できます。 ドメインがアプリの IP アドレスを指し示していることを確認するには、WhatsmyDNS.net を使用します。
サブドメインを追加できない
症状
アプリに新しいホスト名を追加し、サブドメインを割り当てることができません。
解決策
- サブスクリプションの管理者に問い合わせて、アプリにホスト名を追加する権限があることを確認します。
- さらにサブドメインが必要な場合は、ドメイン ホスティングを Azure DNS に変更することをお勧めします。 Azure DNS を使用すると、アプリに 500 のホスト名を追加できます。 詳細については、サブドメインの追加に関するページを参照してください。
DNS を解決できない
症状
"DNS レコードが見つかりませんでした" というエラー メッセージが表示されました。
原因
この問題は、次のいずれかの理由で発生します。
- Time to Live (TTL) 期間は期限切れになっていません。 TTL 値を確認するには、ドメインの DNS 構成を確認し、期限切れになるまで待ちます。
- DNS 構成が正しくありません。
解決策
- この問題が単独で解決されるまで 48 時間待ちます。
- DNS 構成で TTL 設定を変更できる場合は、値を 5 分に変更します。この問題が解決される可能性があります。
- ドメインがアプリの IP アドレスを指し示していることを確認するには、WhatsmyDNS.net を使用します。 ドメインが IP アドレスを指していない場合は、アプリの正しい IP アドレスに
A record
を構成します。
削除したドメインを復元する必要がある
症状
ドメインが Azure Portal に表示されなくなっています。
原因
サブスクリプション所有者が意図せずドメインを削除した可能性があります。
解決策
ドメインが削除されたのが 7 日前までの場合、ドメインの削除プロセスは開始されていません。 この場合、Azure Portal で、同じサブスクリプションを使用してもう一度同じドメインを購入できます。 (必ず、検索ボックスに正確なドメイン名を入力してください。)このドメインに対して再度の請求は行われません。 ドメインが 7 日前より前に削除された場合は、Azure サポートに連絡してドメイン復元の支援を受けてください。
ドメインに関する問題
正しくないドメインの TLS/SSL 証明書を購入した
症状
正しくないドメインの App Service 証明書を購入しました。 この証明書を、正しいドメインを使用するように更新することはできません。
解決策
その証明書を削除してから、新しい証明書を購入します。
間違ったドメインを使用している現在の証明書が "発行済み" 状態の場合は、その証明書に対しても課金されます。 App Service 証明書は払い戻しできませんが、Azure サポートに連絡し、他の可能なオプションがあるかどうかを確認できます。
ドメインの検証が機能しない
症状
App Service 証明書では、証明書を使う準備ができる前に、ドメインの確認を行う必要があります。 [確認] を選択するとプロセスが失敗します。
解決策
TXT record
を追加して、ドメインを手動で確認します。
ドメイン名をホストしている DNS プロバイダーに移動します。
Azure portal でドメイン トークンの値を使用しているドメインの
TXT record
を追加します。DNS 伝達が実行されるのを数分待ってから、 [最新の情報に更新] ボタンを選択して確認をトリガーします。
別の方法として、HTML Web ページによる方法を使用して、手動でドメインを確認することができます。 この方法により、証明機関 (CA) は、証明書が発行されるドメインのドメイン所有権を確認できます。
{domain verification token}.html
という名前の HTML ファイルを作成します。 このファイルの内容には、ドメイン確認トークンの値が含まれている必要があります。ドメインをホストしている Web サーバーのルートに、このファイルをアップロードします。
[最新の情報に更新] を選択して証明書の状態を確認します。 確認が完了するまで数分かかる場合があります。
たとえば、ドメイン検証トークン 1234abcd
を使用して azure.com の標準証明書を購入する場合、 https://azure.com/1234abcd.html
に対して行われた Web 要求は 1234abcd
返されます。
重要
証明書の購入には、ドメイン検証操作を完了するまでに 15 日しかありません。 15 日後、CA は証明書を拒否し、証明書に対して課金されません。 この状況では、この証明書を削除し、もう一度やり直します。
ドメインを購入できない
症状
Microsoft Azure portal 内の App Service からドメインを購入できません。
原因と解決策
この問題は、次のいずれかの理由で発生します。
Azure サブスクリプションに登録されたクレジット カードがない、またはクレジット カードが無効。
解決策:サブスクリプションに有効なクレジット カードを追加します。
ご利用の Azure サブスクリプションの種類は、App Service ドメインの購入をサポートしていません。
解決策: Azure サブスクリプションを別のサブスクリプションの種類 (従量課金制サブスクリプションなど) にアップグレードします。
サブスクリプションの種類によっては、App Service ドメインを購入する前に、十分な支払い履歴が必要になる場合があります。
解決策: 支払い履歴がある別のサブスクリプションで購入するか、現在のサブスクリプションの支払い履歴が表示されるまで待ちます。
サブスクリプションの所有者でないため、ドメインを購入する権限がありません。
解決策:アカウントに所有者ロールを割り当てます。 または、サブスクリプションの管理者に連絡し、ドメインを購入する権限を取得します。
アプリにホスト名を追加できない
症状
ホスト名を追加するときに、ドメインの確認と検証のプロセスが失敗します。
原因
この問題は、次のいずれかの理由で発生します。
ホスト名を追加するアクセス許可がありません。
解決策:サブスクリプションの管理者に、ホスト名を追加する権限を与えるよう依頼します。
ドメインの所有権を確認できませんでした。
解決策:
CNAME record
またはA record
が正しく設定されていることを確認します。 カスタム ドメインをアプリにマップするには、CNAME record
またはA record
を作成します。 ルート ドメインを使用する場合は、A record
とTXT record
を使用する必要があります。レコード タイプ ホスト 参照先 A
@
アプリの IP アドレス TXT
@
<app-name>.azurewebsites.net
CNAME
www
<app-name>.azurewebsites.net
よく寄せられる質問
Web サイトを購入するときに、カスタム ドメインを構成する必要がありますか?
Azure portal からドメインを購入した場合、App Service アプリは、そのカスタム ドメインを使用するように自動的に構成されます。 これ以上の手順を実行する必要はありません。 詳細については、Channel9 の Azure App Service のセルフ ヘルプ: カスタム ドメイン名の追加に関するページを参照してください。
Azure portal で購入したドメインを使用して、代わりに Azure 仮想マシンを指すことはできますか。
はい。そのドメインで仮想マシンを指すことができます。 詳細については、「Azure DNS を使用して Azure サービス用のカスタム ドメイン設定を提供する」をご覧ください。
このドメインは GoDaddy または Azure DNS によってホストされますか
App Service ドメインはドメイン登録のために GoDaddy を使用し、Azure DNS を使用してドメインをホストします。
自動更新を有効にしましたが、メールでドメインの更新通知を受け取りました。 どうすればよいですか。
autorenew を有効にした場合は、何も行う必要はありません。 電子メールでは、ドメインの有効期限が近く、自動更新が有効になっていない場合は手動で更新する必要があることを通知します。
ドメインをホストしている Azure DNS に対して課金されますか
ドメイン購入の初期コストは、ドメイン登録にのみ適用されます。 登録コストと共に、Azure DNS では使用量に基づいて料金が発生します。 詳細については、「Azure DNS の価格」を参照してください。
以前に Azure portal からドメインを購入し、GoDaddy ホスティングから Azure DNS ホスティングに移行したいと考えています。 どうすればよいですか?
Azure DNS ホスティングへの移行は必須ではありません。 Azure DNS に移行したい場合は、Azure portal でのドメイン管理エクスペリエンスによって、Azure DNS に移行するために必要な手順に関する情報が提供されます。 そのドメインを App Service 経由で購入した場合、GoDaddy ホスティングから Azure DNS への移行は比較的シームレスな手順になります。
App Service からドメインを購入したいが、Azure DNS の代わりに GoDaddy でドメインをホストできますか?
2017 年 7 月 24 日以降、Azure は Azure portal から購入した App Service ドメインを Azure DNS 上でホストします。 別のホスティング プロバイダーを使用する場合は、その Web サイトにアクセスしてドメイン ホスティング ソリューションを取得する必要があります。
ドメインのプライバシー保護に対して支払う必要がありますか
Azure portal 経由でドメインを購入した場合は、追加コストなしでプライバシーを追加することを選択できます。 この特典は、Azure App Service を使用してドメインを購入する場合に含まれます。
ドメインが必要なくなったと判断した場合、返金を受けることはできますか
ドメインを購入した場合、5 日間課金されません (1 つの例外を除く)。 この間、ドメインを保持するかどうかを決定できます。 この期間内にドメインを保持しないことを選択した場合、課金されません。
.uk
で終わるドメインは例外です。
.uk
ドメインを購入した場合、すぐに課金され、払い戻しを受けることはできません。
サブスクリプションの別の Azure App Service アプリでドメインを使用できますか
はい。Azure portal で [カスタム ドメイン] や [証明書] ページにアクセスすると、購入したドメインが表示されます。 これらのドメインのいずれかを使用するようにアプリを構成できます。
ドメインをあるサブスクリプションから別のサブスクリプションに転送できますか
はい。 Move-AzResource
PowerShell コマンドレットを使用して、ドメインを別のサブスクリプションまたはリソース グループに移動できます。
現在 Azure App Service アプリがない場合、カスタム ドメインを管理するにはどうすればよいですか?
App Service Web アプリがない場合でも、ドメインを管理できます。 このドメインは、Azure Virtual Machines、Azure Storage などの Azure サービスに使用できます。 App Service Web アプリにドメインを使用する場合は、ドメインを Web アプリにバインドできるように、無料の App Service レベルではない Web アプリを含める必要があります。
カスタム ドメインを含む Web アプリを別のサブスクリプションに、または App Service 環境 v1 から V2 に移動できますか
はい。Web アプリはサブスクリプション間で移動できます。 Azure でリソースを移動する方法に関するページにあるガイダンスに従ってください。 Web アプリを移動する場合は、いくつかの制限が適用されます。 詳細については、App Service リソースを移動するための制限に関するページを参照してください。
Web アプリを移動した後、カスタム ドメイン設定内のドメインのホスト名バインディングは同じままになる必要があります。 ホスト名バインディングを構成するための追加の手順は必要ありません。
App Service 証明書をキー コンテナーからダウンロードすると、どのようなファイル形式が返されますか?
App Service 証明書としてダウンロード をキー コンテナー/シークレットの下で選択すると、証明書ファイルの形式は .pfx です。 ファイルにパスワードは適用されません。
App Service に証明書をアップロードするには、どのようなファイル形式を使用できますか?
証明書ファイルの形式は、パスワードが適用された .pfx ファイルである必要があります。 証明書も 証明書の要件を満たしている必要があります。
サードパーティ CA から証明書を取得し、ファイル形式が .pem/.key 形式の場合は、OpenSSL などのツールを使用してファイルを .pfx ファイル形式に変換できます。 .pfx ファイル形式で必要になるため、変換中に秘密キーを含めなければなりません。
また、CA が証明書チェーンに複数の証明書を提供する場合は、同じ順序に従って証明書をマージする必要があります。 詳細については、「 中間証明書のマージ」を参照してください。
App Service 証明書の証明書署名要求を生成するにはどうすればよいですか?
App Service 証明書の場合は、Azure portal または Powershell/CLI コマンドを使用して購入します。 証明書署名要求は必要ありません。 ただし、Azure Key Vault では、任意の CA によって発行されたデジタル証明書の格納がサポートされています。 秘密キーと公開キーのペアを使用した証明書署名要求の作成をサポートしています。 証明書署名要求は、任意の CA (内部エンタープライズ CA または外部パブリック CA) によって署名できます。 詳細については、「 証明書署名要求の作成」を参照してください。