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

V tomto článku se dozvíte, jak zabezpečit vlastní doménu v aplikaci App Service nebo aplikaci funkcí vytvořením vazby certifikátu. Jakmile budete hotovi, budete mít přístup k aplikaci App Service z koncového https:// bodu pro vlastní název DNS (například https://www.contoso.com).

Webová aplikace s vlastním certifikátem TLS/SSL

Požadavky

1. Přidání vazby

V Azure Portal:

  1. V nabídce vlevo vyberte App Services><app-name>.

  2. V levém navigačním panelu aplikace vyberte Vlastní domény.

  3. Vedle vlastní domény vyberte Přidat vazbu.

    Snímek obrazovky, který ukazuje, jak spustit dialogové okno Přidat vazbu TLS/SSL

  4. Pokud už vaše aplikace má certifikát pro vybranou vlastní doménu, můžete ho vybrat v části Certifikát. Pokud ne, musíte certifikát přidat pomocí některého z výběrů v části Zdroj.

    • Vytvoření App Service spravovaného certifikátu – Nechte App Service vytvořit spravovaný certifikát pro vybranou doménu. Tato možnost je nejjednodušší. Další informace najdete v tématu Vytvoření bezplatného spravovaného certifikátu.
    • Import certifikátu App Service – v App Service Certifikátu zvolte certifikát App Service, který jste pro vybranou doménu koupili.
    • Nahrání certifikátu (.pfx) – postupujte podle pracovního postupu v tématu Nahrání privátního certifikátu a nahrajte certifikát PFX z místního počítače a zadejte heslo certifikátu.
    • Importovat z Key Vault – vyberte Vybrat certifikát trezoru klíčů a v dialogovém okně vyberte certifikát.
  5. V části Typ TLS/SSL zvolte mezi SSL SNI a SSL založeným na PROTOKOLU IP.

    • SNI SSL: Je možné přidat více vazeb SNI SSL. Tato možnost umožňuje více certifikátům TLS/SSL zabezpečit více domén na stejné IP adrese. Většina moderních prohlížečů (včetně Internet Exploreru, Chromu, Firefoxu a Opery) podporuje SNI (další informace najdete v článku Indikace názvu serveru).
      • SSL na základě PROTOKOLU IP: Může být přidána pouze jedna vazba PROTOKOLU SSL protokolu IP. Tato možnost umožňuje zabezpečení vyhrazené veřejné IP adresy pouze jedním certifikátem TLS/SSL. Po konfiguraci vazby postupujte podle kroků v části 2. Přemapujte záznamy pro SSL na základě IP adresy.
        PROTOKOL SSL protokolu IP se podporuje pouze na úrovni Basic nebo vyšší.
  6. Při přidávání nového certifikátu ověřte nový certifikát výběrem možnosti Ověřit.

  7. Vyberte Přidat.

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

    Snímek obrazovky znázorňující vlastní doménu zabezpečenou vazbou certifikátu

Poznámka

Stav Zabezpečení 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 jestli vypršela jeho platnost, což může také způsobit, že se v prohlížečích zobrazí chyba nebo upozornění.

2. Přemapování záznamů pro SSL na základě IP adresy

Tento krok je nutný jenom pro SSL na základě PROTOKOLU IP. V případě vazby SSL SNI přeskočte k části Testování HTTPS pro vaši vlastní doménu.

Je potřeba provést dvě změny, potenciálně:

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

    Stránka Vlastní doména vaší aplikace se aktualizuje novou vyhrazenou IP adresou. Zkopírujte tuto IP adresu a pak přemapujte záznam A na tuto novou IP adresu.

  • Pokud máte vazbu SNI SSL na <app-name>.azurewebsites.net, přemapujte mapování CNAME tak, aby místo toho odkazovaly na sni.<app-name>.azurewebsites.net (přidejte předponu sni ).

3. Testování HTTPS

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

Snímek obrazovky znázorňující příklad přechodu na vlastní doménu se zvýrazněnou contoso.com adresou URL

Kód aplikace může protokol zkontrolovat prostřednictvím hlavičky x-appservice-proto. Hlavička má hodnotu http nebo https.

Poznámka

Pokud vaše aplikace zobrazí 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.

Nejčastější dotazy

Návody zajistit, aby se IP adresa aplikace při provádění změn vazby certifikátu nezměnila?

Vaše 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ž obnovujete 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.

Můžu zakázat vynucené přesměrování z HTTP na HTTPS?

Ve výchozím nastavení App Service vynucuje přesměrování z požadavků HTTP na HTTPS. Pokud chcete toto chování zakázat, přečtěte si téma Konfigurace obecného nastavení.

Jak můžu změnit minimální verzi protokolu TLS pro aplikaci?

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 vynutit různé verze protokolu TLS, přečtěte si téma Konfigurace obecného nastavení.

Návody řešit ukončení protokolu TLS v App Service?

V App Service dochází k ukončení protokolu TLS u nástrojů pro vyrovnávání zatížení sítě, takže všechny požadavky HTTPS dorazí do vaší aplikace 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í pro konkrétní jazyk, například průvodce konfigurací Node.js Linuxu , ukazují, jak v kódu aplikace rozpoznat relaci HTTPS.

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.
$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

Další zdroje informací