Zabezpečení vlastního názvu DNS s vazbou TLS/SSL v Azure App Service
V tomto článku se dozvíte, jak zabezpečit vlastní doménu ve vaší aplikaci App Service nebo aplikaci Function App vytvořením vazby certifikátu. Až budete hotovi, můžete k aplikaci App Service přistupovat na https:// koncový bod pro vlastní název DNS (například https://www.contoso.com ).

Zabezpečení vlastní domény s certifikátem se skládá ze dvou kroků:
- Přidejte privátní certifikát do App Service , který splňuje všechny požadavky na privátní certifikát.
- Vytvořte vazbu TLS k odpovídající vlastní doméně. Tento druhý krok je popsaný v tomto článku.
V tomto kurzu se naučíte:
- Upgrade cenové úrovně aplikace
- Zabezpečení vlastní domény pomocí certifikátu
- Vynucení protokolu HTTPS
- Vynucení protokolu TLS 1.1/1.2
- Automatizace správy protokolu TLS pomocí skriptů
Požadavky
Postup při použití tohoto průvodce:
- Vytvořit aplikaci App Service
- Namapujte název domény na aplikaci nebo kupte a nakonfigurujte ji v Azure .
- Přidání privátního certifikátu do aplikace
Poznámka
Nejjednodušší způsob, jak přidat privátní certifikát, je vytvořit bezplatný App Service spravovaný certifikát.
Příprava webové aplikace
Pokud chcete vytvořit vlastní vazby TLS/SSL nebo povolit klientské certifikáty pro aplikaci App Service, musí být plán App Service na úrovni Basic, Standard, Premium nebo Isolated . V tomto kroku se ujistíte, že je vaše webová aplikace na podporované cenové úrovni.
Přihlášení k Azure
Otevřete Azure Portal.
Přechod do webové aplikace
Vyhledejte a vyberte App Services.

Na stránce App Services vyberte název vaší webové aplikace.

Vyložili jste na stránce pro správu vaší webové aplikace.
Kontrola cenové úrovně
V levém navigačním panelu na stránce webové aplikace se posuňte do části Nastavení a vyberte Vertikálně navýšit kapacitu (plán služby App Service).

Zkontrolujte, že vaše webová aplikace není na úrovni F1 nebo D1. Aktuální úroveň webové aplikace je zvýrazněná tmavě modrým rámečkem.

Na úrovni F1 a D1 se nepodporuje vlastní SSL. Pokud potřebujete vertikálně navýšit kapacitu, postupujte podle kroků v další části. V opačném případě zavřete stránku horizontálního navýšení kapacity a přeskočte část navýšení kapacity schématu App Service .
Vertikální navýšení kapacity plánu služby App Service
Vyberte některou z placených úrovní (B1, B2, B3 nebo kteroukoli úroveň v kategorii Produkční). Další možnosti se zobrazí po kliknutí na odkaz Zobrazit další možnosti.
Klikněte na Použít.

Až se zobrazí následující oznámení, operace škálování je dokončená.

Zabezpečení vlastní domény
Proveďte následující kroky:
V Azure Portalv nabídce vlevo vyberte App Services > <app-name> .
V levém navigačním panelu aplikace spusťte dialog vazby TLS/SSL :
- Výběr vlastních domén > Přidání vazby
- Výběr Nastavení TLS/SSL > Přidání vazby TLS/SSL

V části vlastní doména vyberte vlastní doménu, pro kterou chcete přidat vazbu.
Pokud už vaše aplikace obsahuje certifikát pro vybranou vlastní doménu, pokračujte na vytvoření vazby přímo. V opačném případě pokračujte dál.
Přidat certifikát pro vlastní doménu
Pokud vaše aplikace nemá žádný certifikát pro vybranou vlastní doménu, máte dvě možnosti:
- Upload certifikát PFX – postupujte podle pracovního postupu v Upload privátního certifikátua potom vyberte tuto možnost.
- Import App Service Certificate – Sledujte pracovní postup při importu certifikátu App Servicea pak vyberte tuto možnost.
Poznámka
Můžete také vytvořit bezplatný certifikát nebo importovat certifikát Key Vault, ale musíte to udělat samostatně a pak se vrátit k dialogovému OKNU vazby TLS/SSL .
Vytvořit vazbu
Pomocí následující tabulky můžete nakonfigurovat vazbu TLS v dialogu vazby TLS/SSL a pak kliknout na Přidat vazbu.
| Nastavení | Popis |
|---|---|
| Vlastní doména | Název domény, pro kterou chcete přidat vazbu TLS/SSL. |
| Kryptografický otisk privátního certifikátu | Certifikát, který se má vytvořit. |
| Typ TLS/SSL |
|
Po dokončení operace se stav TLS/SSL vlastní domény změní na zabezpečeno.

Poznámka
Zabezpečený stav ve vlastních doménách znamená, že je zabezpečený certifikátem, ale App Service nekontroluje, jestli je certifikát podepsaný svým držitelem nebo pokud vypršela jeho platnost, což může taky způsobit, že se v prohlížečích zobrazí chyba nebo upozornění.
Přemapování záznamů pro IP SSL
Pokud ve své aplikaci nepoužíváte IP SSL, přeskočte na test HTTPS pro vaši vlastní doménu.
K dispozici jsou dvě změny, které byste si měli udělat, možná:
Ve výchozím nastavení vaše aplikace používá sdílenou veřejnou IP adresu. Když svážete certifikát s IP SSL, App Service vytvoří novou vyhrazenou IP adresu pro vaši aplikaci. Pokud jste namapovali záznam A na svou aplikaci, aktualizujte svůj registr domény pomocí této nové vyhrazené IP adresy.
Stránka vlastní doména vaší aplikace se aktualizuje o novou vyhrazenou IP adresu. Zkopírujte tuto IP adresu a pak přemapujte záznam A na tuto novou IP adresu.
Pokud máte vazbu SNI SSL k
<app-name>.azurewebsites.net, přemapujte všechna mapování CNAME tak, aby odkazovala nasni.<app-name>.azurewebsites.netmísto toho (přidejtesnipředponu).
Test HTTPS
V různých prohlížečích vyhledejte a https://<your.custom.domain> Ověřte, jestli funguje v aplikaci.
Kód aplikace může zkontrolovat protokol přes hlavičku "x-AppService-proto". Záhlaví bude mít hodnotu http nebo https .
Poznámka
Pokud vaše aplikace poskytuje chyby ověřování certifikátů, pravděpodobně používáte certifikát podepsaný svým držitelem.
Pokud to není váš případ, možná jste při exportování certifikátu do souboru PFX vynechali zprostředkující certifikáty.
Zabránit změnám IP adres
Vaše příchozí IP adresa se může při odstranění vazby změnit, i když je tato vazba IP SSL. To je obzvláště důležité, když obnovujete certifikát, který je již ve IP SSL vazbě. Pokud chcete zabránit změně IP adresy vaší aplikace IP, postupujte podle těchto kroků v uvedeném pořadí:
- Nahrajte nový certifikát.
- Vytvořte vazbu nového certifikátu k požadované vlastní doméně. Starý certifikát neodstraňujte. Tato akce nahradí tuto vazbu (místo aby odebrala vazbu původní).
- Odstraňte starý certifikát.
Vynucení protokolu HTTPS
Ve výchozím nastavení může kdokoli k vaší aplikaci přistupovat pomocí protokolu HTTP. Všechny požadavky HTTP můžete přesměrovat na port HTTPS.
V levém navigačním panelu na stránce aplikace vyberte Nastavení TLS/SSL. Pak v části Pouze HTTPS vyberte Zapnuto.

Po dokončení operace přejděte na jakoukoli adresu URL HTTP odkazující na vaši aplikaci. Příklad:
http://<app_name>.azurewebsites.nethttp://contoso.comhttp://www.contoso.com
Vynucení verzí protokolu TLS
Vaše aplikace ve výchozím nastavení povoluje protokol TLS 1.2, což je doporučená úroveň protokolu TLS z hlediska oborových standardů, například PCI DSS. Pokud chcete vynucovat jiné verze protokolu TLS, postupujte následovně:
V levém navigačním panelu na stránce aplikace vyberte Nastavení TLS/SSL. Pak v části Verze protokolu TLS vyberte minimální požadovanou verzi protokolu TLS. Toto nastavení řídí pouze příchozí volání.

Po dokončení operace bude vaše aplikace odmítat všechna připojení využívající nižší verze protokolu TLS.
Zpracování ukončení protokolu TLS
V App Service dojde k ukončení protokolu TLS v nástrojích pro vyrovnávání zatížení sítě, takže všechny požadavky HTTPS dosáhnou vaší aplikace jako nešifrované požadavky HTTP. Pokud vaše logika aplikace potřebuje, aby zkontrolovala, jestli jsou požadavky uživatele zašifrované, zkontrolujte X-Forwarded-Proto záhlaví.
Průvodce konfigurací specifických pro konkrétní jazyk, například průvodce konfigurací Node.js Linuxu, vám ukáže, jak v kódu aplikace rozpoznat relaci HTTPS.
Obnovení vazby certifikátu
Poznámka
Pokud chcete obnovit App Service certifikátu, který jste zakoupili,podívejte se na export (App Service) certifikát. App Service certifikáty je možné automaticky obnovit a vazbu je možné automaticky synchronizovat.
Pokud chcete nahradit certifikát, u který vyprší platnost, může způsob aktualizace vazby certifikátu novým certifikátem nepříznivě ovlivnit uživatelské prostředí. Například příchozí IP adresa se může při odstranění vazby změnit, i když je tato vazba založená na protokolu IP. To je zvlášť důležité při obnovení certifikátu, který už vazbu založenou na protokolu IP má. Pokud se chcete vyhnout změně IP adresy vaší aplikace a zabránit výpadkům aplikace, postupujte podle těchto kroků v tomto pořadí:
- Nahrajte nový certifikát.
- Vytvořte vazbu nového certifikátu ke stejné vlastní doméně, aniž byste odstranili stávající (vypršející) certifikát. Tato akce nahradí vazbu místo odebrání existujícího certifikátu.
- Odstraňte existující certifikát.
Automatizace pomocí skriptů
Azure 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"
PowerShell
$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.
New-AzWebApp -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-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