Azure App Service の SSL 証明書を購入して構成するBuy and Configure an SSL Certificate for your Azure App Service

このチュートリアルでは、Azure App Service の SSL 証明書を購入し、Azure Key Vault に安全に格納して、カスタム ドメインに関連付けることで、Web アプリをセキュリティで保護する方法について説明します。This tutorial shows you how to secure your web app by purchasing an SSL certificate for your Azure App Service, securely storing it in Azure Key Vault, and associating it with a custom domain.

手順 1 - Azure にログインするStep 1 - Log in to Azure

Azure Portal (http://portal.azure.com) にログインしますLog in to the Azure portal at http://portal.azure.com

手順 2 - SSL 証明書を注文するStep 2 - Place an SSL Certificate order

SSL 証明書を注文するには、Azure Portal で新しい App Service 証明書を作成します。You can place an SSL Certificate order by creating a new App Service Certificate In the Azure portal.

証明書の作成

SSL 証明書のフレンドリドメイン名を入力しますEnter a friendly Name for your SSL certificate and enter the Domain Name

注意

この手順は、購入プロセスの最も重要な部分の 1 つです。This step is one of the most critical parts of the purchase process. この証明書で保護する正しいホスト名 (カスタム ドメイン) を入力してください。Make sure to enter correct host name (custom domain) that you want to protect with this certificate. ホスト名には WWW を付けないでくださいDO NOT append the Host name with WWW.

サブスクリプションリソース グループ、および証明書の SKU を選択しますSelect your Subscription, Resource Group, and Certificate SKU

ヒント

App Service 証明書はあらゆる Azure Service と Azure ではないサービスで利用できます。App Service に限定されません。App Service Certificates can be used for any Azure or non-Azure Services and is not limited to App Services. そのためには、任意の場所で利用できるように、App Service 証明書のローカル PFX コピーを作成する必要があります。To do so , you need to create a local PFX copy of an App Service certificate that you can use it anywhere you want. 詳細については、App Service 証明書のローカル PFX コピーの作成に関する記事を参照してください。For more information, read Creating a local PFX copy of an App Service Certificate.

手順 3 - 証明書を Azure Key Vault に保存するStep 3 - Store the certificate in Azure Key Vault

注意

Key Vault は、クラウド アプリケーションやサービスで使用される暗号化キーとシークレットを保護するための Azure サービスです。Key Vault is an Azure service that helps safeguard cryptographic keys and secrets used by cloud applications and services.

SSL 証明書の購入が完了したら、[App Service 証明書] ページを開く必要があります。Once the SSL Certificate purchase is complete, you need to open the App Service Certificates page.

KV に格納する準備完了のイメージを挿入

この証明書の使用を開始する前に完了する必要のある手順がまだいくつかあるため、証明書の状態は [発行保留中] になっています。The certificate status is “Pending Issuance” as there are few more steps you need to complete before you can start using this certificate.

[証明書のプロパティ] ページの [証明書の構成] をクリックし、[手順 1: 格納] をクリックして Azure Key Vault にこの証明書を格納します。Click Certificate Configuration inside the Certificate Properties page and Click on Step 1: Store to store this certificate in Azure Key Vault.

[Key Vault の状態] ページの [Key Vault リポジトリ] をクリックして、この証明書を格納する既存の Key Vault を選択するか、[Key Vault の新規作成] をクリックして同じサブスクリプションとリソース グループに新しい Key Vault を作成します。From the Key Vault Status page, click Key Vault Repository to choose an existing Key Vault to store this certificate OR Create New Key Vault to create new Key Vault inside same subscription and resource group.

注意

最小限の料金でこの証明書を Azure Key Vault に格納できます。Azure Key Vault has minimal charges for storing this certificate. 詳細については、Azure Key Vault の価格の詳細 に関するページをご覧ください。For more information, see Azure Key Vault Pricing Details.

この証明書を格納する Key Vault リポジトリを選択すると、[格納] オプションに、成功したことが示されます。Once you have selected the Key Vault Repository to store this certificate in, the Store option should show success.

KV の格納成功のイメージを挿入

手順 4 - ドメインの所有権を確認するStep 4 - Verify the Domain Ownership

手順 3 で使用した [証明書の構成] ページで、[手順 2: 確認] をクリックします。From the same Certificate Configuration page you used in Step 3, click Step 2: Verify.

優先するドメイン確認方法を選択します。Choose the preferred domain verification method.

App Service 証明書では、App Service、ドメイン、メールおよび手動の 4 種類のドメイン確認がサポートされています。There are four types of domain verification supported by App Service Certificates: App Service, Domain, Mail, and Manual Verification. これらの確認の種類の詳細については、「詳細」をご覧ください。These verification types are explained in more details in the Advanced section.

注意

確認したいドメインが同一のサブスクリプションで既に App Service アプリにマップされている場合は、App Service の確認が最も便利なオプションです。App Service Verification is the most convenient option when the domain you want to verify is already mapped to an App Service app in the same subscription. この方法は、App Service アプリがドメインの所有権を既に確認済みである事実を利用しています。It takes advantage of the fact that the App Service app has already verified the domain ownership.

[確認] ボタンをクリックして、この手順を実行します。Click on Verify button to complete this step.

ドメイン確認のイメージを挿入

[確認] をクリックしたら、[確認] オプションに成功したことが示されるまで、[更新] ボタンを使用します。After clicking Verify, use the Refresh button until the Verify option should show success.

KV の確認成功のイメージを挿入

手順 5 - App Service アプリに証明書を割り当てるStep 5 - Assign Certificate to App Service App

注意

このセクションの手順を実行する前に、アプリにカスタム ドメイン名が関連付けられている必要があります。Before performing the steps in this section, you must have associated a custom domain name with your app. 詳細については、「Azure App Service のカスタム ドメイン名の構成」を参照してください。For more information, see Configuring a custom domain name for a web app.

Azure Portal で、ページの左側にある [App Service] オプションをクリックします。In the Azure portal, click the App Service option on the left of the page.

この証明書を割り当てるアプリの名前をクリックします。Click the name of your app to which you want to assign this certificate.

[設定] で、[SSL 設定] をクリックします。In the Settings, click SSL settings.

[App Service 証明書のインポート] をクリックして、購入した証明書を選択します。Click Import App Service Certificate and select the certificate that you just purchased.

証明書インポートのイメージを挿入

[SSL のバインディング] セクションで [バインディングの追加] をクリックし、ドロップダウン リストから、SSL でセキュリティ保護するドメイン名、および使用する証明書を選択します。In the ssl bindings section Click on Add bindings, and use the dropdowns to select the domain name to secure with SSL, and the certificate to use. また、Server Name Indication (SNI) または IP ベースの SSL のどちらを使用するかを選択できます。You may also select whether to use Server Name Indication (SNI) or IP based SSL.

SSL バインドのイメージを挿入

変更を保存して SSL を有効にするには、 [Add Binding (バインドの追加)] をクリックします。Click Add Binding to save the changes and enable SSL.

注意

IP ベースの SSL を選択し、カスタム ドメインが A レコードを使用して構成されている場合、次の追加の手順を実行する必要があります。If you selected IP based SSL and your custom domain is configured using an A record, you must perform the following additional steps. 詳細については、「詳細」セクションを参照してください。These are explained in more details in the Advanced section.

ここで、証明書が正しく構成されていることを確認するために、HTTP:// ではなく、HTTPS:// を使用してアプリを参照できる必要があります。At this point, you should be able to visit your app using HTTPS:// instead of HTTP:// to verify that the certificate has been configured correctly.

手順 6 - 管理タスクStep 6 - Management tasks

Azure CLIAzure CLI

#!/bin/bash

fqdn=<replace-with-www.{yourdomain}>
pfxPath=<replace-with-path-to-your-.PFX-file>
pfxPassword=<replace-with-your=.PFX-password>
resourceGroup=myResourceGroup
webappname=mywebapp$RANDOM

# Create a resource group.
az group create --location westeurope --name $resourceGroup

# Create an App Service plan in Basic tier (minimum required by custom domains).
az appservice plan create --name $webappname --resource-group $resourceGroup --sku B1

# Create a web app.
az webapp create --name $webappname --resource-group $resourceGroup \
--plan $webappname

echo "Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net"
read -p "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.

# Map your prepared custom domain name to the web app.
az webapp config hostname add --webapp-name $webappname --resource-group $resourceGroup \
--hostname $fqdn

# Upload the SSL certificate and get the thumbprint.
thumbprint=$(az webapp config ssl upload --certificate-file $pfxPath \
--certificate-password $pfxPassword --name $webappname --resource-group $resourceGroup \
--query thumbprint --output tsv)

# Binds the uploaded SSL certificate to the web app.
az webapp config ssl bind --certificate-thumbprint $thumbprint --ssl-type SNI \
--name $webappname --resource-group $resourceGroup

echo "You can now browse to https://$fqdn"

PowerShellPowerShell

$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-AzureRmResourceGroup -Name $webappname -Location $location

# Create an App Service plan in Free tier.
New-AzureRmAppServicePlan -Name $webappname -Location $location `
-ResourceGroupName $webappname -Tier Free

# Create a web app.
New-AzureRmWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname

Write-Host "Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net"
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-AzureRmAppServicePlan -Name $webappname -ResourceGroupName $webappname `
-Tier Basic

# Add a custom domain name to the web app. 
Set-AzureRmWebApp -Name $webappname -ResourceGroupName $webappname `
-HostNames @($fqdn,"$webappname.azurewebsites.net")

# Upload and bind the SSL certificate to the web app.
New-AzureRmWebAppSSLBinding -WebAppName $webappname -ResourceGroupName $webappname -Name $fqdn `
-CertificateFilePath $pfxPath -CertificatePassword $pfxPassword -SslState SniEnabled

詳細Advanced

ドメインの所有権の確認Verifying Domain Ownership

App Service 証明書では、メールと手動のさらに 2 種類のドメイン確認がサポートされています。There are two more types of domain verification supported by App service Certificates: Mail, and Manual Verification.

メールによる確認Mail Verification

検証の電子メールは、このカスタム ドメインに関連付けられているメール アドレスに既に送信されています。Verification email has already been sent to the Email Address(es) associated with this custom domain. メール確認の手順を実行する場合は、この確認メールを開き、確認リンクをクリックします。To complete the Email verification step, open the email and click the verification link.

メール確認のイメージを挿入

確認メールを再送信する必要がある場合は、[メールの再送信] ボタンをクリックします。If you need to resend the verification email, click the Resend Email button.

ドメイン確認Domain Verification

Azure で購入した App Service のドメインにのみこのオプションを選択します。Choose this option only for an App Service domain that you purchased from Azure.. Azure は確認 TXT レコードを自動的に追加し、プロセスを完了します。Azure automatically adds the verification TXT record for you and completes the process.

手動による確認Manual Verification

重要

HTML Web ページの確認 (標準の証明書の SKU でのみ動作)HTML Web Page Verification (only works with Standard Certificate SKU)

  1. "starfield.html" という名前の HTML ファイルを作成します。Create an HTML file named "starfield.html"

  2. このファイルの内容は、ドメイン確認トークンの名前と正確に同じにする必要があります Content of this file should be the exact name of the Domain Verification Token. (トークンは、[ドメインの確認の状態] ページからコピーできます)。(You can copy the token from the Domain Verification Status page)

  3. ドメイン /.well-known/pki-validation/starfield.html をホストする Web サーバーのルートに、このファイルをアップロードしますUpload this file at the root of the web server hosting your domain /.well-known/pki-validation/starfield.html

  4. 確認が完了したら、[更新] をクリックして証明書の状態を更新します。Click Refresh to update the certificate status after verification is completed. 検証が完了するまで数分かかる場合があります。It might take few minutes for verification to complete.

ヒント

curl -G http://<domain>/.well-known/pki-validation/starfield.html を使用してターミナルで確認すると、応答には <verification-token> が含まれます。Verify in a terminal using curl -G http://<domain>/.well-known/pki-validation/starfield.html the response should contain the <verification-token>.

DNS TXT レコード検証DNS TXT Record Verification

  1. DNS マネージャーを使用して、@ サブドメインに、ドメイン確認トークンと同じ値の TXT レコードを作成します。Using your DNS manager, Create a TXT record on the @ subdomain with value equal to the Domain Verification Token.
  2. 確認が完了したら、[更新] をクリックして証明書の状態を更新します。Click “Refresh” to update the Certificate status after verification is completed.

ヒント

<verification-token>@.<domain> に TXT レコードを作成する必要があります。You need to create a TXT record on @.<domain> with value <verification-token>.

App Service アプリに証明書を割り当てるAssign Certificate to App Service App

[IP ベースの SSL] を選択し、カスタム ドメインが A レコードを使用して構成されている場合は、次の追加手順を実行する必要があります。If you selected IP based SSL and your custom domain is configured using an A record, you must perform the following additional steps:

IP ベースの SSL バインドを構成すると、専用の IP アドレスがアプリに割り当てられます。After you have configured an IP based SSL binding, a dedicated IP address is assigned to your app. この IP アドレスは、アプリの設定の [カスタム ドメイン] ページで確認できます。これは、[ホスト名] セクションの上にあります。You can find this IP address on the Custom domain page under settings of your app, right above the Hostnames section. このアドレスは、[外部 IP アドレス] として示されますIt is listed as External IP Address

IP SSL のイメージを挿入

この IP アドレスは、ドメイン用の A レコードを構成するために以前使用した仮想 IP アドレスとは異なります。This IP address is different than the virtual IP address used previously to configure the A record for your domain. SNI ベースの SSL を使用するように構成する場合、または SSL を使用するように構成しない場合は、このエントリに対してアドレスは表示されません。If you are configured to use SNI based SSL, or are not configured to use SSL, no address is listed for this entry.

ドメイン名レジストラーから提供されるツールを使用して、前の手順の IP アドレスを指定するようにカスタム ドメイン名用の A レコードを変更します。Using the tools provided by your domain name registrar, modify the A record for your custom domain name to point to the IP address from the previous step.

キーを更新して証明書を同期するRekey and Sync the Certificate

証明書のキーを更新する必要がある場合は、[証明書のプロパティ] ページの [キーの更新と同期] オプションを選択します。If you ever need to rekey your certificate, select the Rekey and Sync option from the Certificate Properties page.

[キー更新] ボタンをクリックして処理を開始します。Click Rekey Button to initiate the process. 処理が完了するまでに 1 ~ 10 分かかることがあります。This process can take 1-10 minutes to complete.

SSL キー更新のイメージを挿入

証明書のキーを更新すると、証明機関から発行された新しい証明書が展開されます。Rekeying your certificate rolls the certificate with a new certificate issued from the certificate authority.

SSL 証明書が自動更新されない理由Why is my SSL certificate not auto-renewed?

自動更新するように SSL 証明書が構成されているにもかかわらず、自動的に更新されない場合は、ドメインの確認が保留中になっている可能性があります。If your SSL certificate is configured for auto-renewal, but it is not automatically renewed, you may have a pending domain verification. 以下の点に注意してください。Note the following:

  • App Service 証明書を生成する GoDaddy では、3 年に 1 回、ドメインの確認を要求します。GoDaddy, which generates App Service certificates, requires domain verification once every three years. ドメインを確認するために、3 年に 1 回、ドメイン管理者に電子メールが送られます。The domain administrator receives an email once every three years to verify the domain. この電子メールの確認やドメインの確認を怠ると、App Service 証明書は自動的に更新されなくなります。Failure to check the email or verify your domain prevents the App Service certificate from being automatically renewed.
  • 2017 年 3 月 31 日より前に発行された App Service 証明書は、いずれも次回更新時にドメインの再確認が必要となります (証明書の自動更新が有効になっている場合も同様です)。All App Service certificates issued prior to March 31 2017 require reverification of domain at the time of next renewal (even if the auto-renewal is enabled for the certificate). これは、GoDaddy ポリシーの変更によるものです。This is a result of change in GoDaddy policy. 電子メールを確認し、この 1 回限りのドメインの確認を完了すると、App Service 証明書の自動更新が続行されます。Check your email and complete this one-time domain verification to continue the auto-renewal of the App Service certificate.

その他のリソースMore resources