既存のカスタム DNS 名を Azure 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. カスタム ドメインを構成する

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

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

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

    A screenshot showing how to open the Add custom domain dialog.

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

    Note

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

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

  6. [TLS/SSL type] (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 アドレスを保護します。 バインディングを構成した後は、「2. 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 レコードを示しています。

    A screenshot showing how to configure a new custom domain, along with a managed certificate.

    警告

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

2. DNS レコードを作成する

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

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

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

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

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

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

    Screenshot that shows an example DNS records page.

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

Note

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

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

次の表に従って 2 つのレコードを作成します。

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

Screenshot that shows a DNS records page.

3. 検証と完了

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

    A screenshot showing how to validate your DNS record settings in the Add a custom domain dialog.

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

    A screenshot showing the Add button activated after validation.

    Note

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

  3. カスタム ドメインが一覧に追加されるはずです。 [バインディングなし] の赤い X が表示される場合もあります。

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

    A screenshot showing the custom domains page with the new secured custom domain.

    Note

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

4. ブラウザーでテストする

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

Screenshot that shows navigation to an Azure app.

カスタム ドメインの 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 アプリにマップする」を参照してください

次のステップ