Zajištění zabezpečení vlastního názvu DNS pomocí vazby TLS/SSL ve službě App Service

V tomto článku se dozvíte, jak zajistit zabezpečení vlastní domény v aplikaci služby 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 vlastního názvu DNS (například https://www.contoso.com).

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

Požadavky

Přidání vazby

Na webu Azure Portal:

  1. V nabídce vlevo vyberte název> aplikace App Services.><

  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 znázorňující, jak spustit dialogové okno Přidat vazbu TLS/SSL

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

    • Vytvoření spravovaného certifikátu služby App Service – Umožňuje službě 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 služby App Service – V certifikátu služby App Service vyberte certifikát služby App Service, který jste zakoupili pro vybranou doménu.
    • Nahrání certifikátu (.pfx) – Podle pracovního postupu nahrání privátního certifikátu nahrajte certifikát PFX z místního počítače a zadejte heslo certifikátu.
    • Import ze služby Key Vault – Vyberte certifikát trezoru klíčů a v dialogovém okně vyberte certifikát.
  5. V typu TLS/SSL vyberte ssl SNI nebo PROTOKOL SSL založený na PROTOKOLU IP.

    • SSL SNI: Lze přidat více vazeb SSL SNI. Tato možnost umožňuje více certifikátů TLS/SSL, které pomáhají zabezpečit více domén na stejné IP adrese. Většina moderních prohlížečů (včetně Microsoft Edge, Chrome, Firefoxu a Opery) podporuje SNI. (Další informace najdete v tématu Označení názvu serveru.)
    • PROTOKOL SSL založený na 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 dokončení konfigurace vazby postupujte podle kroků v záznamech přemapování protokolu SSL založeného na PROTOKOLU IP.
      Protokol SSL založený na PROTOKOLU IP je podporován pouze v úrovni Standard 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:

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

Přemapování záznamů pro PROTOKOL SSL založené na PROTOKOLU IP

Tento krok je nutný jenom pro PROTOKOL SSL založený na PROTOKOLU IP. U vazby SSL SNI přejděte na Test HTTPS.

Je možné, že je potř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, vytvoří app Service pro vaši aplikaci novou vyhrazenou IP adresu. Pokud jste namapovali záznam A na vaši aplikaci, aktualizujte registr domény pomocí této nové vyhrazené IP adresy.

    Stránka vlastní domény vaší aplikace se aktualizuje o novou vyhrazenou IP adresu. Zkopírujte tuto IP adresu a pak záznam A znovu namapujte na tuto novou IP adresu.

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

Test HTTPS

Přejděte do https://<your.custom.domain> různých prohlížečů a ověřte, že se vaše aplikace zobrazí.

Snímek obrazovky znázorňující příklad přechodu na vlastní doménu Zvýrazněná contoso.com adresa URL.

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

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 tomu tak není, možná jste při exportu certifikátu do souboru PFX vynechali zprostředkující certifikáty.

Nejčastější dotazy

Návody se ujistěte, že se IP adresa aplikace při provádění změn vazby certifikátu nezmění?

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 v vazbě PROTOKOLU IP SSL. Pokud se chcete vyhnout změně IP adresy vaší aplikace, postupujte takto:

  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 vynucené přesměrování z HTTP na HTTPS zakázat?

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

Jak můžu změnit minimální verze 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ých nastavení.

Návody zpracování ukončení protokolu TLS ve službě App Service?

Ve službě 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 k vaší aplikaci dostanou jako nešifrované požadavky HTTP. Pokud logika vaší aplikace potřebuje zkontrolovat, jestli jsou požadavky uživatelů zašifrované, zkontrolujte hlavičku X-Forwarded-Proto .

Průvodci konfigurací specifickou pro konkrétní jazyk, jako je průvodce konfigurací Node.js Linuxu, ukazují, 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.
$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