Zabezpečení vlastního názvu DNS pomocí vazby TLS/SSL v Azure App Service

Tento článek ukazuje, jak zabezpečit vlastní doménu v aplikaci App Service nebo aplikaci funkcí vytvořením vazby certifikátu. Až budete hotovi, budete mít přístup ke své aplikaci App Service na koncovém https:// bodu pro vlastní název DNS (napříkladhttps://www.contoso.com).

Web app with custom TLS/SSL certificate

Zabezpečení vlastní domény pomocí certifikátu zahrnuje dva kroky:

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

Pokud chcete postupovat podle tohoto průvodce postupy:

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 vaši aplikaci App Service, musí být váš plán App Service v úrovni Basic, Standard, Premium nebo Izolovaný. 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.

Vyhledejte a vyberte App Services.

Select App Services

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

Screenshot of the App Services page in Azure portal showing a list of all running web apps, with the first app in the list highlighted.

Dostali jste se na stránku správy 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).

Scale-up menu

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.

Check pricing tier

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 Vertikální navýšení kapacity a přeskočte oddíl Vertikální navýšení kapacity App Service plánu.

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.

Choose pricing tier

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

Scale up notification

Zabezpečení vlastní domény

Proveďte následující kroky:

V Azure Portal v nabídce vlevo vyberte název> aplikace App Services<>.

V levém navigačním panelu aplikace spusťte dialogové okno vazby TLS/SSL :

  • Výběr vazby Custom DomainsAdd>
  • Výběr vazby TLS/SSLAdd>TLS/SSL

Add binding to domain

V Custom Domain vyberte vlastní doménu, pro kterou chcete přidat vazbu.

Pokud už vaše aplikace obsahuje certifikát pro vybranou vlastní doménu, přejděte přímo na Vytvořit vazbu . V opačném případě pokračujte.

Přidání certifikátu pro vlastní doménu

Pokud vaše aplikace nemá žádný certifikát pro vybranou vlastní doménu, máte dvě možnosti:

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 do dialogového okna vazby TLS/SSL.

Vytvoření vazby

Následující tabulka vám pomůže nakonfigurovat vazbu TLS v dialogovém okně vazby TLS/SSL a potom kliknout na Přidat vazbu.

Nastavení Popis
Vlastní doména Název domény pro přidání vazby TLS/SSL.
Kryptografický otisk privátního certifikátu Certifikát, který se má svázat.
Typ TLS/SSL
  • SSL SNI – Je možné přidat více vazeb SSL SNI. Tato možnost umožňuje více certifikátů TLS/SSL zabezpečit více domén na stejné IP adrese. Většina moderních prohlížečů (včetně Internet Exploreru, Chrome, Firefoxu a Opera) podporuje SNI (další informace najdete v tématu Indikace názvu serveru).
  • PROTOKOL SSL PROTOKOLU IP – lze přidat pouze jednu vazbu PROTOKOLU SSL protokolu IP. Tato možnost umožňuje zabezpečit vyhrazenou veřejnou IP adresu pouze jedním certifikátem TLS/SSL. Po nakonfigurování vazby postupujte podle kroků v záznamech Přemapování protokolu IP SSL.
    Protokol SSL protokolu IP je podporován pouze v úrovni Standard nebo vyšší.

Po dokončení operace se stav TLS/SSL vlastní domény změní na zabezpečený.

TLS/SSL binding successful

Poznámka

Stav zabezpečení ve vlastních doménách znamená, že je zabezpečený pomocí certifikátu, ale App Service nekontroluje, jestli je certifikát podepsaný svým držitelem nebo vypršela platnost, což může také způsobit, že prohlížeče zobrazí chybu nebo upozornění.

Přemapování záznamů pro PROTOKOL SSL PROTOKOLU IP

Pokud ve své aplikaci nepoužíváte PROTOKOL IP SSL, přeskočte na Test HTTPS pro vlastní doménu.

Je třeba provést dvě změny:

  • Ve výchozím nastavení vaše aplikace používá sdílenou veřejnou IP adresu. Když vytvoříte vazbu certifikátu s PROTOKOLem IP SSL, App Service vytvoří novou vyhrazenou IP adresu pro vaši aplikaci. Pokud jste namapovali záznam A do aplikace, aktualizujte registr domény pomocí této nové vyhrazené IP adresy.

    Stránka vlastní domény vaší aplikace se aktualizuje na 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 SSL SNI na <app-name>.azurewebsites.net, přemapujte všechna mapování CNAME na sni.<app-name>.azurewebsites.net místo toho (přidejte předponu sni ).

Test HTTPS

V různých prohlížečích přejděte a https://<your.custom.domain> ověřte, že slouží k vaší aplikaci.

Screenshot showing an example of browsing to your custom domain with the contoso.com URL highlighted.

Kód aplikace může protokol zkontrolovat prostřednictvím hlavičky x-appservice-proto. Záhlaví bude mít hodnotu nebo httphttps.

Poznámka

Pokud vaše aplikace poskytuje chyby ověření certifikátu, 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

Příchozí IP adresa se může změnit, když odstraníte vazbu, i když je tato vazba IP SSL. To je zvlášť důležité, když obnovíte certifikát, který už je ve vazbě SSL protokolu IP. Pokud chcete zabránit změně IP adresy vaší aplikace IP, postupujte podle těchto kroků v uvedeném pořadí:

  1. Nahrajte nový certifikát.
  2. 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í).
  3. Odstraňte starý certifikát.

Vynucení protokolu HTTPS

Ve výchozím nastavení má každý přístup k vaší aplikaci pomocí protokolu HTTP. Všechny požadavky HTTP můžete přesměrovat na port HTTPS.

Na stránce aplikace v levém navigačním panelu vyberte nastavení PROTOKOLU TLS/SSL. Pak v části Pouze HTTPS vyberte Zapnuto.

Enforce HTTPS

Po dokončení operace přejděte na jakoukoli adresu URL HTTP odkazující na vaši aplikaci. Příklad:

  • http://<app_name>.azurewebsites.net
  • http://contoso.com
  • http://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ě:

Na stránce aplikace v levém navigačním panelu vyberte nastavení PROTOKOLU TLS/SSL. Pak v části Verze protokolu TLS vyberte minimální požadovanou verzi protokolu TLS. Toto nastavení řídí pouze příchozí volání.

Enforce TLS 1.1 or 1.2

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 dochází k ukončení protokolu TLS v nástrojích pro vyrovnávání zatížení sítě, takže všechny požadavky HTTPS se dostanou k vaší aplikaci jako nešifrované požadavky HTTP. Pokud logika vaší aplikace potřebuje zkontrolovat, jestli jsou požadavky uživatelů šifrované nebo ne, zkontrolujte hlavičku X-Forwarded-Proto .

Průvodci konfigurací specifickou pro jazyk, jako je například průvodce konfigurací Node.js Linuxu , vám ukáže, jak zjistit relaci HTTPS v kódu aplikace.

Automatizace pomocí skriptů

Azure CLI

Vytvoření vazby vlastního certifikátu TLS/SSL k webové aplikaci

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

Další zdroje informací