トレーニング
認定資格
マイクロソフト認定: Azure管理者アソシエイト - Certifications
Microsoft Azure で主要なプロフェッショナル機能を構成、管理、セキュリティ保護、管理するための主要なスキルを示します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
この記事では、証明書バインドを作成することで App Service アプリまたは関数アプリのカスタム ドメインにセキュリティを提供する方法について説明します。 完了したら、カスタム DNS 名 (https://www.contoso.com
など) の https://
エンドポイントで App Service アプリにアクセスできます。
Azure ポータルで次の操作を行います。
左側のメニューから、[App Services]><app-name> を選択します。
アプリの左側のナビゲーションから、[カスタム ドメイン] を選択します。
カスタム ドメインの横にある [バインディングの追加] を選択します。
選択したカスタム ドメインの証明書がアプリに既にある場合は、[証明書] でそれを選択できます。 そうでない場合は、[ソース] の選択肢のいずれかを使用して証明書を追加する必要があります。
[TLS/SSL の種類] で、[SNI SSL] または [IP ベースの SSL] のどちらかを選択します。
新しい証明書を追加する場合は、[検証] を選択して新しい証明書を検証します。
[追加] を選択します。
操作が完了すると、カスタム ドメインの TLS/SSL 状態がセキュリティで保護された状態に変わります。
注意
[カスタム ドメイン] での [セキュリティ保護] 状態とは、証明書によってセキュリティが提供されているが、App Service はその証明書が自己署名されたものか有効期限が切れているかをチェックしないことを意味します。たとえば、それによって、ブラウザーにエラーや警告が表示されることもあります。
この手順は、IP ベースの SSL に対してのみ必要です。 SNI SSL バインディングの場合は、「HTTPS をテストする」に進みます。
行うべき変更は 2 つ考えられます。
既定では、アプリは、共有のパブリック IP アドレスを使用します。 IP SSL で証明書をバインドすると、アプリ用の新規の専用 IP アドレスが App Service によって作成されます。 アプリに A レコードをマップした場合は、この新規の専用 IP アドレスでドメイン レジストリを更新します。
アプリの [カスタム ドメイン] ページが、新規の専用 IP アドレスで更新されます。 この IP アドレスをコピーして、この新しい IP アドレスに A レコードを再マップします。
<app-name>.azurewebsites.net
への SNI SSL バインディングがある場合は、sni.<app-name>.azurewebsites.net
を指すように CNAME マッピングを再マップします。 (sni
プレフィックスを追加します。)
さまざまなブラウザーで https://<your.custom.domain>
にアクセスして、アプリが表示されることを確認します。
プロトコルは、アプリケーション コードから x-appservice-proto
ヘッダーを介して調査することができます。 ヘッダーの値は http
または https
です。
注意
アプリで証明書検証エラーが返された場合は、自己署名証明書を使用している可能性があります。
そうでない場合は、証明書を PFX ファイルにエクスポートしたときに中間証明書を含めなかった可能性があります。
バインディングを削除すると、着信 IP アドレスが変化する場合があります。そのバインディングが IP SSL であっても同様です。 IP SSL バインディングに既に存在する証明書を更新するときには、このことが特に重要となります。 アプリの IP アドレスに変更が生じないようにするには、次の手順に順番どおりに従います。
既定では、App Service は HTTP 要求から HTTPS へのリダイレクトを強制します。 この動作を無効にするには、「全般設定を構成する」を参照してください。
アプリでは既定で TLS 1.2 が有効です。これは、PCI DSS などの業界標準で推奨されている TLS レベルです。 異なる TLS バージョンを適用するには、「全般設定を構成する」を参照してください。
App Service では、TLS 終了がネットワーク ロード バランサーで発生するため、すべての HTTPS 要求は暗号化されていない HTTP 要求としてアプリに到達します。 ユーザー要求が暗号化されているかどうかをアプリ ロジックで確認する必要がある場合は、X-Forwarded-Proto
ヘッダーを調べます。
Linux Node.js 構成ガイドなどの言語固有の構成ガイドでは、アプリケーション コード内の HTTPS セッションを検出する方法について説明しています。
カスタム TLS/SSL 証明書を Web アプリにバインドする
$fqdn="<Replace with your custom domain name>"
$pfxPath="<Replace with path to your .PFX file>"
$pfxPassword="<Replace with your .PFX password>"
$webappname="mywebapp$(Get-Random)"
$location="West Europe"
# Create a resource group.
New-AzResourceGroup -Name $webappname -Location $location
# Create an App Service plan in Free tier.
New-AzAppServicePlan -Name $webappname -Location $location `
-ResourceGroupName $webappname -Tier Free
# Create a web app.
$webapp = New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname
Write-Host "Sign in to your domain provider's website and configure the following records:"
Write-Host "A CNAME record that maps $fqdn to $webappname.azurewebsites.net"
Write-Host "A TXT record that maps asuid.$fqdn to the domain verification ID $($webapp.CustomDomainVerificationId)"
Read-Host "Press [Enter] key when ready ..."
# Before continuing, go to your DNS configuration UI for your custom domain and follow the
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the
# hostname "www" and point it your web app's default domain name.
# Upgrade App Service plan to Basic tier (minimum required by custom SSL certificates)
Set-AzAppServicePlan -Name $webappname -ResourceGroupName $webappname `
-Tier Basic
# Add a custom domain name to the web app.
Set-AzWebApp -Name $webappname -ResourceGroupName $webappname `
-HostNames @($fqdn,"$webappname.azurewebsites.net")
# Upload and bind the SSL certificate to the web app.
New-AzWebAppSSLBinding -WebAppName $webappname -ResourceGroupName $webappname -Name $fqdn `
-CertificateFilePath $pfxPath -CertificatePassword $pfxPassword -SslState SniEnabled
トレーニング
認定資格
マイクロソフト認定: Azure管理者アソシエイト - Certifications
Microsoft Azure で主要なプロフェッショナル機能を構成、管理、セキュリティ保護、管理するための主要なスキルを示します。
ドキュメント
TLS/SSL 証明書を追加および管理する - Azure App Service
Azure App Service での無料の証明書の作成、App Service 証明書のインポート、Key Vault 証明書のインポート、App Service 証明書の購入について説明します。
App Service 証明書を追加して管理する - Azure App Service
App Service 証明書を作成して管理します。 App Service 証明書を更新、同期、削除します。
ドメインと TLS/SSL 証明書のトラブルシューティング - Azure App Service
Azure App Service でドメインまたは TLS/SSL 証明書を構成するときに発生する可能性がある一般的な問題の解決策を見つけます。