Certifikáty a app Service Environment v2

Důležité

Tento článek se týká služby App Service Environment v2, která se používá s plány izolované služby App Service. Služba App Service Environment v2 bude vyřazena 31. srpna 2024. Existuje nová verze služby App Service Environment, která se snadněji používá a běží na výkonnější infrastruktuře. Další informace o nové verzi najdete v úvodu do služby App Service Environment. Pokud aktuálně používáte App Service Environment v2, postupujte podle kroků v tomto článku a proveďte migraci na novou verzi.

Od 29. ledna 2024 už nemůžete vytvářet nové prostředky služby App Service Environment verze 2 pomocí některé z dostupných metod, včetně šablon ARM/Bicep, webu Azure Portal, Azure CLI nebo rozhraní REST API. Před 31. srpnem 2024 musíte migrovat do služby App Service Environment v3 , abyste zabránili odstranění prostředků a ztrátě dat.

Služba App Service Environment (ASE) je nasazení služby Aplikace Azure, která běží ve vaší virtuální síti Azure. Dá se nasadit pomocí koncového bodu aplikace přístupného z internetu nebo koncového bodu aplikace, který je ve vaší virtuální síti. Pokud službu ASE nasadíte s koncovým bodem přístupným z internetu, nazývá se toto nasazení externí služba ASE. Pokud službu ASE nasadíte s koncovým bodem ve virtuální síti, toto nasazení se nazývá služba ASE s interním nástrojem pro vyrovnávání zatížení. Další informace o službě ASE s interním nástrojem pro vyrovnávání zatížení najdete v dokumentu Vytvoření a použití služby ASE s interním nástrojem pro vyrovnávání zatížení.

Služba ASE je jeden systém tenantů. Vzhledem k tomu, že se jedná o jednoho tenanta, jsou některé funkce dostupné jenom se službou ASE, které nejsou dostupné ve službě App Service s více tenanty.

Certifikáty SLUŽBY ASE s interním nástrojem pro vyrovnávání zatížení

Pokud používáte externí službu ASE, vaše aplikace jsou dostupné na adrese <appname>.<asename.p.azurewebsites.net>. Ve výchozím nastavení jsou všechny služby ASE vytvořené i s interním nástrojem pro vyrovnávání zatížení s certifikáty, které tento formát následují. Pokud máte ase s interním nástrojem pro vyrovnávání zatížení, budou aplikace dostupné na základě názvu domény, který zadáte při vytváření služby ASE s interním nástrojem pro vyrovnávání zatížení. Aby aplikace podporovaly protokol TLS, musíte nahrát certifikáty. Získání platného certifikátu TLS/SSL pomocí interních certifikačních autorit, zakoupení certifikátu od externího vystavitele nebo použití certifikátu podepsaného svým držitelem.

Existují dvě možnosti konfigurace certifikátů pomocí služby ASE s interním nástrojem pro vyrovnávání zatížení. Můžete nastavit výchozí certifikát služby ASE s interním nástrojem pro vyrovnávání zatížení nebo nastavit certifikáty pro jednotlivé webové aplikace ve službě ASE. Bez ohledu na to, kterou zvolíte, musí být správně nakonfigurované následující atributy certifikátu:

  • Předmět: Tento atribut musí být nastaven na *.[ your-root-domain-here] for a wildcard ILB ASE certificate. Pokud vytváříte certifikát pro vaši aplikaci, mělo by to být [název_aplikace]. [your-root-domain-here]
  • Alternativní název subjektu: Tento atribut musí obsahovat oba *.[ your-root-domain-here] a *.scm. [your-root-domain-here] pro certifikát ASE s interním nástrojem pro vyrovnávání zatížení se zástupným znakem. Pokud vytváříte certifikát pro vaši aplikaci, mělo by to být [název_aplikace]. [your-root-domain-here] a [appname].scm. [your-root-domain-here].

Jako třetí variantu můžete vytvořit certifikát ASE s interním nástrojem pro vyrovnávání zatížení, který obsahuje všechny názvy jednotlivých aplikací v síti SAN certifikátu místo použití odkazu na zástupný znak. Problém s touto metodou spočívá v tom, že potřebujete znát názvy aplikací, které vkládáte do služby ASE, nebo potřebujete dál aktualizovat certifikát SLUŽBY ASE s interním nástrojem pro vyrovnávání zatížení.

Nahrání certifikátu do služby ASE s interním nástrojem pro vyrovnávání zatížení

Po vytvoření služby ASE s interním nástrojem pro vyrovnávání zatížení na portálu musí být certifikát nastavený pro službu ASE s interním nástrojem pro vyrovnávání zatížení. Dokud se certifikát nenastaví, služba ASE zobrazí banner, který certifikát nenastavil.

Certifikát, který nahrajete, musí být souborem .pfx. Po nahrání certifikátu je časová prodleva přibližně 20 minut, než se certifikát použije.

Nemůžete vytvořit ASE a nahrát certifikát jako jednu akci na portálu nebo dokonce v jedné šabloně. Jako samostatnou akci můžete certifikát nahrát pomocí šablony, jak je popsáno v dokumentu šablony Vytvoření ase.

Pokud chcete rychle vytvořit certifikát podepsaný svým držitelem pro testování, můžete použít následující bit PowerShellu:

$certificate = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "cert:\localMachine\my\" + $certificate.Thumbprint
$password = ConvertTo-SecureString -String "CHANGETHISPASSWORD" -Force -AsPlainText

$fileName = "exportedcert.pfx"
Export-PfxCertificate -cert $certThumbprint -FilePath $fileName -Password $password

Při vytváření certifikátu podepsaného svým držitelem musíte zajistit, aby název subjektu byl ve formátu CN={ASE_NAME_HERE}_InternalLoadBalancingASE.

Certifikáty aplikací

Aplikace hostované v ASE můžou používat funkce certifikátů zaměřené na aplikaci, které jsou k dispozici ve službě App Service s více tenanty. Mezi tyto funkce patří:

  • Certifikáty SNI
  • PROTOKOL SSL založený na PROTOKOLU IP, který se podporuje pouze s externí službou ASE. Služba ASE s interním nástrojem pro vyrovnávání zatížení nepodporuje protokol SSL založený na PROTOKOLU IP.
  • Hostované certifikáty služby KeyVault

Pokyny k nahrání a správě těchto certifikátů jsou k dispozici v části Přidání certifikátu TLS/SSL ve službě Aplikace Azure Service. Pokud jednoduše konfigurujete certifikáty tak, aby odpovídaly vlastnímu názvu domény, který jste přiřadili k webové aplikaci, stačí tyto pokyny. Pokud nahráváte certifikát pro webovou aplikaci ASE s interním nástrojem pro vyrovnávání zatížení s výchozím názvem domény, zadejte web scm v síti SAN certifikátu, jak je uvedeno výše.

Nastavení protokolu TLS

Nastavení protokolu TLS můžete nakonfigurovat na úrovni aplikace.

Privátní klientský certifikát

Běžným případem použití je konfigurace aplikace jako klienta v modelu klientského serveru. Pokud server zabezpečíte pomocí certifikátu privátní certifikační autority, budete muset nahrát klientský certifikát do aplikace. Následující pokyny načtou certifikáty do úložiště důvěryhodných pracovních procesů, na kterých vaše aplikace běží. Pokud certifikát načtete do jedné aplikace, můžete ho použít s ostatními aplikacemi ve stejném plánu služby App Service, aniž byste certifikát nahráli znovu.

Nahrání certifikátu do aplikace ve službě ASE:

  1. Vygenerujte soubor .cer pro certifikát.

  2. Přejděte do aplikace, která potřebuje certifikát na webu Azure Portal.

  3. V aplikaci přejděte na nastavení SSL. Klikněte na Nahrát certifikát. Vyberte Veřejný. Vyberte místní počítač. Zadejte název. Vyhledejte soubor .cer a vyberte ho. Vyberte nahrát.

  4. Zkopírujte kryptografický otisk.

  5. Přejděte do Nastavení aplikace. Vytvořte nastavení aplikace WEBSITE_LOAD_ROOT_CERTIFICATES s kryptografickým otiskem jako hodnotou. Pokud máte více certifikátů, můžete je umístit do stejného nastavení odděleného čárkami a bez prázdných znaků.

    84EC242A4EC7957817B8E48913E50953552DAFA6,6A5C65DC9247F762FE17BF8D4906E04FE6B31819

Certifikát bude dostupný všemi aplikacemi ve stejném plánu služby App Service jako aplikace, která toto nastavení nakonfigurovala. Pokud ho potřebujete k dispozici pro aplikace v jiném plánu služby App Service, budete muset operaci nastavení aplikace zopakovat v aplikaci v daném plánu služby App Service. Pokud chcete zkontrolovat, jestli je certifikát nastavený, přejděte do konzoly Kudu a v konzole ladění PowerShellu zadejte následující příkaz:

dir cert:\localmachine\root

Pokud chcete provést testování, můžete vytvořit certifikát podepsaný svým držitelem a vygenerovat soubor .cer pomocí následujícího PowerShellu:

$certificate = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "cert:\localMachine\my\" + $certificate.Thumbprint
$password = ConvertTo-SecureString -String "CHANGETHISPASSWORD" -Force -AsPlainText

$fileName = "exportedcert.cer"
export-certificate -Cert $certThumbprint -FilePath $fileName -Type CERT