既存のカスタム DNS 名を Azure App Service にマップする
[アーティクル] 2024/09/30
26 人の共同作成者
フィードバック
この記事の内容
前提条件
カスタム ドメインを構成する
DNS レコードを作成する
ドメインの所有権を検証し、マッピングを完了する
DNS 解決をテストする
(省略可能) スクリプトで自動化する
次のステップ
さらに 3 個を表示
注意
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 に追加するドメインによって異なります。
テーブルを展開する
App Service アプリを作成する か、別のチュートリアルで作成したアプリを使用します。 Web アプリの App Service プラン は、Free (F1) レベルではなく、有料レベルであることが必要です。 レベルを更新するには、アプリのスケールアップ に関する記事を参照してください。
自分のカスタム ドメインの DNS レコードを編集できることを確認します。 DNS レコードを編集するには、自分のドメイン プロバイダー (GoDaddy など) の DNS レジストリへのアクセス権が必要です。 たとえば、contoso.com
と www.contoso.com
の DNS エントリを追加するには、contoso.com
ルート ドメインに対して DNS 設定を構成できる必要があります。 カスタム ドメインはパブリック DNS ゾーンに存在する必要があります。プライベート DNS ゾーンはサポートされていません。
カスタム ドメインをまだお持ちでない場合は、代わりに App Service ドメイン を購入できます。
Azure portal で、アプリの管理ページに移動します。
アプリの左側のメニューで、[カスタム ドメイン] を選択します。
[カスタム ドメインの追加] を選択します。
[ドメイン プロバイダー] で、[その他のすべてのドメイン サービス] を選択してサードパーティのドメインを構成します。
アプリが Basic レベル以上の場合は、[TLS/SSL 証明書] で [App Service マネージド証明書] を選択します。 Shared レベルのままにする場合、または独自の証明書を使用する場合は、[後で証明書を追加する] を選択します。
[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 レベル以上でのみサポートされます。
[ドメイン] には、所有するドメインに基づいて、必要な完全修飾ドメイン名を指定します。 [ホスト名レコードの種類] ボックスの既定値は、ドメインがルート ドメイン (contoso.com
など) であるか、サブドメイン (www.contoso.com
など)、またはワイルドカード ドメイン (*.contoso.com
など) であるかに応じて、使用が推奨される DNS レコードになります。
まだ [検証] は選択しないでください。
App Service のカスタム ドメインごとに、ドメイン プロバイダーに 2 つの DNS レコードが必要です。 [ドメインの検証] セクションには、ドメイン プロバイダーに追加する必要がある 2 つの DNS レコードが表示されます。 コピー ボタンを使用して、次のセクションで必要な値をコピーできます。
次のスクリーンショットは、www.contoso.com
ドメインの既定の選択を示しています。 追加する CNAME レコードと TXT レコードが表示されています。
警告
TXT レコードを必ず追加する必要はありませんが、セキュリティ上強くお勧めします。 TXT レコードは、他の App Service アプリからのサブドメインの引き継ぎを回避するのに役立つ "ドメイン検証 ID" です。 前にこの検証 ID を使わずに構成したカスタム ドメインについては、DNS 構成に検証 ID (TXT レコード) を追加して、同じリスクからそれらを保護する必要があります。 この一般的な重大度の高い脅威の詳細については、サブドメインの乗っ取り に関するページを参照してください。
ドメイン プロバイダーの Web サイトにサインインします。
Azure DNS を使用して自社のドメインの DNS レコードを管理したり、Azure App Service のカスタム DNS 名を構成したりできます。 詳細については、「チュートリアル:Azure DNS でドメインをホストする 」を参照してください。
DNS レコードの管理ページを探します。
各ドメイン プロバイダーには独自の DNS レコード インターフェイスがあるので、プロバイダーのドキュメントを参照してください。 [ドメイン名] 、 [DNS] 、 [ネーム サーバー管理] というラベルが付いたサイトの領域を探します。
多くの場合、DNS レコードのページを見つけるには、アカウント情報を表示し、 [マイドメイン] などのリンクを探します。 そのページに移動し、 [ゾーン ファイル] 、 [DNS レコード] 、 [詳細構成] のような名前のリンクを探します。
以下のスクリーンショットは、DNS レコード ページの例です。
[追加] または適切なウィジェットを選択して、レコードを作成します。
注意
一部のプロバイダー (GoDaddy など) では、別の [変更を保存] リンクを選択するまで DNS レコードの変更が反映されません。
作成するレコードの種類を選択して、手順に従います。 CNAME レコード または A レコード のいずれかを使用して、カスタム DNS 名を App Service にマップします。 関数アプリが従量課金プラン でホストされている場合、CNAME オプションのみがサポートされます。
次の表に示すように、2 つのレコードを作成します。
テーブルを展開する
レコード タイプ
Host
値
説明
A
@
[カスタム ドメインの追加] ダイアログに表示されるアプリの IP アドレス。
ドメイン マッピング自体。 (通常、@
はルート ドメインを表します。)
TXT
asuid
[カスタム ドメインの追加] ダイアログに表示されるドメイン検証 ID。
ルート ドメインの場合、App Service は、asuid
TXT レコードにアクセスして、カスタム ドメインの所有権を確認します。
次の表に示すように、2 つのレコードを作成します。
テーブルを展開する
レコード タイプ
Host
値
説明
A
<subdomain>
(例: www
)
[カスタム ドメインの追加] ダイアログに表示される IP アドレス。
ドメイン マッピング自体。
TXT
asuid.<subdomain>
(例: asuid.www
)
[カスタム ドメインの追加] ダイアログに表示されるドメイン検証 ID。
App Service は、asuid.<subdomain>
TXT レコードにアクセスして、カスタム ドメインの所有権を確認します。
次の表に示すように、2 つのレコードを作成します。
テーブルを展開する
レコード タイプ
Host
値
説明
CNAME
<subdomain>
(例: www
)
<app-name>.azurewebsites.net
(この記事の冒頭にある「注意」 を参照してください)。
ドメイン マッピング自体。
TXT
asuid.<subdomain>
(例: asuid.www
)
[カスタム ドメインの追加] ダイアログに表示されるドメイン検証 ID。
App Service は、asuid.<subdomain>
TXT レコードにアクセスして、カスタム ドメインの所有権を確認します。
*.contoso.com
の *
のようなワイルドカード名については、次の表に説明されているように 2 つのレコードを作成します。
テーブルを展開する
レコード タイプ
Host
値
説明
CNAME
*
<app-name>.azurewebsites.net
(この記事の冒頭にある「注意」 を参照してください)。
ドメイン マッピング自体。
TXT
asuid
[カスタム ドメインの追加] ダイアログに表示されるドメイン検証 ID。
App Service は、asuid
TXT レコードにアクセスして、カスタム ドメインの所有権を確認します。
Azure portal の [カスタム ドメインの追加] ダイアログに戻り、[検証] を選択します。
両方のドメイン レコードの [ドメインの検証] セクションの横に緑色のチェック マークが表示されている場合は、正しく構成されています。 [追加] を選択します。 エラーまたは警告が表示された場合は、ドメイン プロバイダーの Web サイトの DNS レコード設定で解決します。
注意
TXT レコードを構成したが、A または CNAME レコードを構成していない場合、App Service は変更をドメイン移行 シナリオとして扱い、検証を成功させることができますが、レコードの横に緑色のチェック マークは表示されません。
カスタム ドメインが一覧に追加されるはずです。 赤い X 印と、「バインディングなし 」というテキストが表示される場合もあります。
以前に [App Service マネージド証明書] を選択した場合は、App Service でカスタム ドメインのマネージド証明書が作成されるまで数分待ちます。 プロセスが完了すると、赤い X が緑色のチェック マークになり、[セキュリティ保護] という言葉が表示されます。 [後で証明書を追加する] を選択した場合、ドメインのプライベート証明書を追加 してバインドを構成 するまで、この赤い X は残ります。
注意
カスタム ドメインの証明書バインドを構成しない限り、ブラウザーからドメインへのすべての HTTPS 要求で、ブラウザーに応じたエラーまたは警告が表示されます。
構成した DNS 名を参照します。
カスタム ドメインの 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 アプリにマップする 」を参照してください
次のコマンドでは、構成済みカスタム DNS 名を App Service アプリに追加します。
Set-AzWebApp `
-Name <app-name> `
-ResourceGroupName <resource_group_name> `
-HostNames @("<fully_qualified_domain_name>","<app-name>.azurewebsites.net")
詳細については、「カスタム ドメインを Web アプリに割り当てる 」を参照してください。