Sdílet prostřednictvím


Povolení HTTPS pro vlastní doménu ve službě Azure App Service

Důležité

Od 28. července 2025 budou změny spravovaných certifikátů služby App Service (ASMC) mít vliv na vydávání a obnovování certifikátů v určitých scénářích. I když většina zákazníků nemusí podnikat kroky, doporučujeme projít si podrobný blogový příspěvek ASMC, kde najdete další informace.

V tomto článku se dozvíte, jak zajistit zabezpečení vlastní domény v aplikaci služby Azure App Service nebo aplikaci funkcí vytvořením vazby certifikátu. Až budete hotovi, můžete přistupovat k vaší aplikaci App Service na koncovém bodu https:// pro vlastní Domain Name System (DNS). Příklad: https://www.contoso.com.

Snímek obrazovky znázorňující webovou aplikaci s vlastním certifikátem TLS/SSL

Požadavky

Přidejte vazbu

Na webu Azure Portal:

  1. V levém podokně vyberte><.

  2. V levém podokně aplikace vyberte Vlastní domény.

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

    Snímek obrazovky znázorňující otevření dialogového okna 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 (Personal Information Exchange) 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:

    • SNI SSL: Můžete přidat více vazeb Secure Sockets Layer (SSL) s označením názvu serveru (SNI). Tato možnost umožňuje více certifikátů TLS (Transport Layer Security) nebo 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 Indikace názvu serveru.)
    • PROTOKOL SSL založený na PROTOKOLU IP: Můžete 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 přemapování záznamů pro SSL založené na IP. Protokol SSL založený na PROTOKOLU IP je podporován pouze v úrovni Standard nebo vyšší.
  6. Když přidáte nový certifikát, vyberte Ověřit a ověřte nový certifikát.

  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

    Zabezpečený stav ve vlastních doménách znamená, že certifikát poskytuje zabezpečení. 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 odkazovalo na sni.<app-name>.azurewebsites.net místo toho. (Přidejte předponu sni .)

Testování HTTPS

Otevřete https://<your.custom.domain> v různých prohlížečích 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.

Pokud vaše aplikace způsobuje problémy s ověřením certifikátu, pravděpodobně používáte samopodepsaný certifikát. Pokud tomu tak není, pravděpodobně jste při exportu certifikátu do souboru .pfx vynechali zprostředkující certifikáty.

Nejčastější dotazy

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

Příchozí IP adresa se může změnit, když odstraníte vazbu, i když je tato vazba IP SSL. Toto chování je zvlášť důležité, když obnovíte certifikát, který už je ve 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 s vlastní doménou, kterou chcete, aniž byste odstranili starý certifikát. Tato akce nahradí vazbu místo odstranění 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. Oborové standardy, jako je PCI DSS , doporučují tuto úroveň TLS. Pokud chcete vynutit různé verze protokolu TLS, přečtěte si téma Konfigurace obecných nastavení.

Jak mám zpracovávat 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í pro konkrétní jazyky, jako je průvodce konfigurací Linuxu pro Node.js, ukazují, jak detekovat relaci HTTPS v kódu vaší aplikace.

Automatizace pomocí skriptů

Azure CLI (příkazový řádek nástroje Azure)

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