既存のカスタム DNS 名を Azure App Service にマップする

Note

2024 年 6 月 1 日より、新しく作成されたすべての App Service アプリには、名前付け規則 <app-name>-<random-hash>.<region>.azurewebsites.net を使用して一意の既定のホスト名を生成するオプションが備わります。 既存のアプリ名は変更されません。

例: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

詳細については、App Service リソースの一意の既定のホスト名に関するページを参照してください。

Azure App Service は、非常にスケーラブルな、自己適用型の Web ホスティング サービスを提供します。 このガイドでは、既存のカスタム ドメイン ネーム システム (DNS) 名を App Service にマップする方法について説明します。 ライブ サイトとその DNS ドメイン名を App Service にダウンタイムなしで移行する方法については、「Azure App Service へのアクティブな DNS 名の移行」をご覧ください。

ドメイン プロバイダーで追加する必要がある DNS レコードの種類は、App Service に追加するドメインによって異なります。

シナリオ 推奨される DNS レコード
ルート ドメイン contoso.com A レコード。 ルート レコードには CNAME レコードを使用しないでください。 (詳細については、RFC 1912、セクション 2.4 を参照してください。)
Subdomain www.contoso.com、my.contoso.com CNAME レコード。 A レコードを使用してサブドメインをアプリの IP アドレスに直接マップできますが、IP アドレスは変更される可能性があります。 代わりに、CNAME は変更の影響を受けにくいアプリの既定ホスト名にマップされます。
ワイルドカード *.contoso.com CNAME レコード

Note

www サブドメインとマネージド証明書を構成する方法を示すエンドツーエンドのチュートリアルについては、「チュートリアル: カスタム ドメインとマネージド証明書を使用して Azure App Service アプリをセキュリティで保護する」を参照してください。

前提条件

  • App Service アプリを作成するか、別のチュートリアルで作成したアプリを使用します。 Web アプリの App Service プランは、Free (F1) レベルではなく、有料レベルであることが必要です。 レベルを更新するには、アプリのスケールアップに関する記事を参照してください。
  • 自分のカスタム ドメインの DNS レコードを編集できることを確認します。 DNS レコードを編集するには、自分のドメイン プロバイダー (GoDaddy など) の DNS レジストリへのアクセス権が必要です。 たとえば、contoso.comwww.contoso.com の DNS エントリを追加するには、contoso.com ルート ドメインに対して DNS 設定を構成できる必要があります。 カスタム ドメインはパブリック DNS ゾーンに存在する必要があります。プライベート DNS ゾーンはサポートされていません。
  • カスタム ドメインをまだお持ちでない場合は、代わりに App Service ドメインを購入できます。

カスタム ドメインを構成する

  1. Azure portal で、アプリの管理ページに移動します。

  2. アプリの左側のメニューで、[カスタム ドメイン] を選択します。

  3. [カスタム ドメインの追加] を選択します。

    [カスタム ドメインの追加] ダイアログを開く方法を示すスクリーンショット。

  4. [ドメイン プロバイダー] で、[その他のすべてのドメイン サービス] を選択してサードパーティのドメインを構成します。

    Note

    App Service ドメインを構成するには、Azure App Service のカスタム ドメイン名の購入に関するページを参照してください。

  5. アプリが Basic レベル以上の場合は、[TLS/SSL 証明書][App Service マネージド証明書] を選択します。 Shared レベルのままにする場合、または独自の証明書を使用する場合は、[後で証明書を追加する] を選択します。

  6. [TLS/SSL の種類] で、目的のバインドの種類を選択します。

    設定 説明
    カスタム ドメイン TLS/SSL バインドを追加するドメイン名。
    プライベート証明書のサムプリント バインドする証明書。
    TLS/SSL の種類 - SNI SSL: 複数の SNI SSL バインディングを追加できます。 このオプションでは、複数の TLS/SSL 証明書を使用して、同一の IP アドレス上の複数のドメインを保護できます。 最新のブラウザーのほとんど (Inernet Explorer、Chrome、Firefox、Opera など) が SNI をサポートしています (詳細については、「Server Name Indication」を参照してください)。
    - IP SSL: IP SSL バインディングを 1 つだけ追加できます。 このオプションでは、TLS/SSL 証明書を 1 つだけ使用して、専用のパブリック IP アドレスを保護します。 バインディングを構成した後は、「IP ベースの SSL のレコードの再マッピング」の手順に従います。
    IP SSL は、Standard レベル以上でのみサポートされます。
  7. [ドメイン] には、所有するドメインに基づいて、必要な完全修飾ドメイン名を指定します。 [ホスト名レコードの種類] ボックスの既定値は、ドメインがルート ドメイン (contoso.com など) であるか、サブドメイン (www.contoso.com など)、またはワイルドカード ドメイン (*.contoso.com など) であるかに応じて、使用が推奨される DNS レコードになります。

  8. まだ [検証] は選択しないでください。

  9. App Service のカスタム ドメインごとに、ドメイン プロバイダーに 2 つの DNS レコードが必要です。 [ドメインの検証] セクションには、ドメイン プロバイダーに追加する必要がある 2 つの DNS レコードが表示されます。 コピー ボタンを使用して、次のセクションで必要な値をコピーできます。

    次のスクリーンショットは、www.contoso.com ドメインの既定の選択を示しています。 追加する CNAME レコードと TXT レコードが表示されています。

    マネージド証明書と共に新しいカスタム ドメインを構成する方法を示すスクリーンショット。

    警告

    TXT レコードを必ず追加する必要はありませんが、セキュリティ上強くお勧めします。 TXT レコードは、他の App Service アプリからのサブドメインの引き継ぎを回避するのに役立つ "ドメイン検証 ID" です。 前にこの検証 ID を使わずに構成したカスタム ドメインについては、DNS 構成に検証 ID (TXT レコード) を追加して、同じリスクからそれらを保護する必要があります。 この一般的な重大度の高い脅威の詳細については、サブドメインの乗っ取りに関するページを参照してください。

DNS レコードを作成する

  1. ドメイン プロバイダーの Web サイトにサインインします。

    Azure DNS を使用して自社のドメインの DNS レコードを管理したり、Azure App Service のカスタム DNS 名を構成したりできます。 詳細については、「チュートリアル:Azure DNS でドメインをホストする」を参照してください。

  2. DNS レコードの管理ページを探します。

    各ドメイン プロバイダーには独自の DNS レコード インターフェイスがあるので、プロバイダーのドキュメントを参照してください。 [ドメイン名][DNS][ネーム サーバー管理] というラベルが付いたサイトの領域を探します。

    多くの場合、DNS レコードのページを見つけるには、アカウント情報を表示し、 [マイドメイン] などのリンクを探します。 そのページに移動し、 [ゾーン ファイル][DNS レコード][詳細構成] のような名前のリンクを探します。

    以下のスクリーンショットは、DNS レコード ページの例です。

    DNS レコード ページの例を示すスクリーンショット。

  3. [追加] または適切なウィジェットを選択して、レコードを作成します。

Note

一部のプロバイダー (GoDaddy など) では、別の [変更を保存] リンクを選択するまで DNS レコードの変更が反映されません。

作成するレコードの種類を選択して、手順に従います。 CNAME レコードまたは A レコードのいずれかを使用して、カスタム DNS 名を App Service にマップします。 関数アプリが従量課金プランでホストされている場合、CNAME オプションのみがサポートされます。

次の表に示すように、2 つのレコードを作成します。

レコード タイプ Host 説明
A @ [カスタム ドメインの追加] ダイアログに表示されるアプリの IP アドレス。 ドメイン マッピング自体。 (通常、@ はルート ドメインを表します。)
TXT asuid [カスタム ドメインの追加] ダイアログに表示されるドメイン検証 ID。 ルート ドメインの場合、App Service は、asuid TXT レコードにアクセスして、カスタム ドメインの所有権を確認します。

DNS レコード ページを示すスクリーンショット。

ドメインの所有権を検証し、マッピングを完了する

  1. Azure portal の [カスタム ドメインの追加] ダイアログに戻り、[検証] を選択します。

    [カスタム ドメインの追加] ダイアログで DNS レコード設定を検証する方法を示すスクリーンショット。

  2. 両方のドメイン レコードの [ドメインの検証] セクションの横に緑色のチェック マークが表示されている場合は、正しく構成されています。 [追加] を選択します。 エラーまたは警告が表示された場合は、ドメイン プロバイダーの Web サイトの DNS レコード設定で解決します。

    検証後にアクティブ化された [追加] ボタンを示すスクリーンショット。

    Note

    TXT レコードを構成したが、A または CNAME レコードを構成していない場合、App Service は変更をドメイン移行シナリオとして扱い、検証を成功させることができますが、レコードの横に緑色のチェック マークは表示されません。

  3. カスタム ドメインが一覧に追加されるはずです。 赤い X 印と、「バインディングなし」というテキストが表示される場合もあります。

    以前に [App Service マネージド証明書] を選択した場合は、App Service でカスタム ドメインのマネージド証明書が作成されるまで数分待ちます。 プロセスが完了すると、赤い X が緑色のチェック マークになり、[セキュリティ保護] という言葉が表示されます。 [後で証明書を追加する] を選択した場合、ドメインのプライベート証明書を追加してバインドを構成するまで、この赤い X は残ります。

    新しいセキュリティで保護されたカスタム ドメインを含むカスタム ドメイン ページを示すスクリーンショット。

    Note

    カスタム ドメインの証明書バインドを構成しない限り、ブラウザーからドメインへのすべての HTTPS 要求で、ブラウザーに応じたエラーまたは警告が表示されます。

DNS 解決をテストする

構成した DNS 名を参照します。

Azure アプリへのナビゲーションを示すスクリーンショット。

カスタム ドメインの URL を参照したときに HTTP 404 (見つかりません) エラーが発生した場合、最も可能性の高い原因は次の 2 つです。

  • クライアントのブラウザーが、ドメインの古い IP アドレスをキャッシュしている。 キャッシュをクリアして、DNS 解決をもう一度テストします。 Windows マシンでは、ipconfig /flushdns でキャッシュをクリアできます。
  • IP ベースの証明書バインドを構成し、アプリの IP アドレスが変更されています。 新しい IP アドレスに DNS エントリの A レコードを再マップします。

Page not secure 警告またはエラーが発生した場合は、ドメインに証明書バインドがまだないためです。 ドメインのプライベート証明書を追加しバインドを構成します

(省略可能) スクリプトで自動化する

Azure CLI または Azure PowerShell を使用すると、カスタム ドメインの管理をスクリプトで自動化できます。

次のコマンドでは、構成済みカスタム DNS 名を App Service アプリに追加します。

az webapp config hostname add \
    --webapp-name <app-name> \
    --resource-group <resource_group_name> \
    --hostname <fully_qualified_domain_name>

詳細については、「カスタム ドメインを Web アプリにマップする」を参照してください

次のステップ