Egyéni DNS-név biztonságának biztosítása TLS-/SSL-kötéssel az App Service-ben
Ez a cikk bemutatja, hogyan biztosíthat biztonságot az egyéni tartomány számára az App Service-alkalmazásban vagy a függvényalkalmazásban egy tanúsítványkötés létrehozásával. Ha végzett, hozzáférhet az App Service-alkalmazáshoz az https://
egyéni DNS-név végpontján (például https://www.contoso.com
).
Előfeltételek
- Az App Service-alkalmazás vertikális felskálázása az egyik támogatott tarifacsomagra: Alapszintű, Standard, Prémium.
- Rendeljen hozzá egy tartománynevet az alkalmazáshoz , vagy vásárolja meg és konfigurálja az Azure-ban.
A kötés hozzáadása
A bal oldali menüben válassza az App Services><alkalmazásnevét.>
Az alkalmazás bal oldali navigációs sávjáról válassza az Egyéni tartományok lehetőséget.
Az egyéni tartomány mellett válassza a Kötés hozzáadása lehetőséget.
Ha az alkalmazás már rendelkezik a kijelölt egyéni tartományhoz tartozó tanúsítvánnyal, a tanúsítványban kiválaszthatja. Ha nem, akkor egy tanúsítványt kell hozzáadnia a Forrás elem egyik kijelölésével.
- Felügyelt App Service-tanúsítvány létrehozása – Lehetővé teszi, hogy az App Service létrehozhasson egy felügyelt tanúsítványt a kiválasztott tartományhoz. Ez a beállítás a legegyszerűbb. További információ: Ingyenes felügyelt tanúsítvány létrehozása.
- App Service-tanúsítvány importálása – Az App Service-tanúsítványban válassza ki a kiválasztott tartományhoz vásárolt App Service-tanúsítványt.
- Tanúsítvány feltöltése (.pfx) – Kövesse a magántanúsítvány feltöltésekor a munkafolyamatot, és töltsön fel egy PFX-tanúsítványt a helyi gépről, és adja meg a tanúsítvány jelszavát.
- Importálás a Key Vaultból – Válassza a Key Vault-tanúsítvány kiválasztása lehetőséget, és válassza ki a tanúsítványt a párbeszédpanelen.
TLS/SSL típus esetén válassza az SNI SSL vagy az IP-alapú SSL lehetőséget.
- SNI SSL: Több SNI SSL-kötés is hozzáadható. Ez a beállítás lehetővé teszi, hogy több TLS/SSL-tanúsítvány több tartományt is biztonságossá tegye ugyanazon az IP-címen. A legtöbb modern böngésző (például a Microsoft Edge, a Chrome, a Firefox és az Opera) támogatja az SNI-t. (További információ: Kiszolgálónév jelzése.)
- IP-alapú SSL: Csak egy IP SSL-kötés adható hozzá. Ez a beállítás csak egy TLS/SSL-tanúsítványt engedélyez a dedikált nyilvános IP-cím biztonságossá tételéhez. A kötés konfigurálása után kövesse az IP-alapú SSL rekordjainak újraképezése lépéseit.
Az IP-alapú SSL csak standard vagy magasabb szinten támogatott.
Új tanúsítvány hozzáadásakor az Ellenőrzés gombra kattintva ellenőrizze az új tanúsítványt.
Válassza a Hozzáadás lehetőséget.
A művelet befejezése után az egyéni tartomány TLS-/SSL-állapota védettre változik.
Feljegyzés
Az egyéni tartományokban a biztonságos állapot azt jelenti, hogy egy tanúsítvány biztonságot nyújt, de az App Service nem ellenőrzi, hogy a tanúsítvány önaláírt vagy lejárt-e, például a böngészőkben hiba vagy figyelmeztetés jelenhet meg.
IP-alapú SSL rekordjainak újraképe
Erre a lépésre csak IP-alapú SSL esetén van szükség. SNI SSL-kötés esetén ugorjon a HTTPS tesztelésére.
Lehetséges, hogy két módosítást kell végrehajtania:
Az alkalmazás alapértelmezés szerint megosztott nyilvános IP-címet használ. Ha egy tanúsítványt IP SSL-sel köt meg, az App Service létrehoz egy új, dedikált IP-címet az alkalmazás számára. Ha egy A rekordot hozzárendelt az alkalmazáshoz, frissítse a tartományregisztrációs adatbázist ezzel az új, dedikált IP-címmel.
Az alkalmazás egyéni tartománylapja frissül az új, dedikált IP-címmel. Másolja ki ezt az IP-címet, majd másolja újra az A rekordot erre az új IP-címre.
Ha SNI SSL-kötéssel
<app-name>.azurewebsites.net
rendelkezik, a CNAME-megfeleltetések átképezése helyett mutasson rásni.<app-name>.azurewebsites.net
. (Adja hozzá azsni
előtagot.)
HTTPS tesztelése
Tallózással https://<your.custom.domain>
ellenőrizze, hogy megjelenik-e az alkalmazás a különböző böngészőkben.
Az alkalmazáskód a fejlécen keresztül ellenőrizheti a protokollt x-appservice-proto
. A fejléc értéke vagy https
értéke http
.
Feljegyzés
Ha az alkalmazás tanúsítványérvényesítési hibákat jelez, valószínűleg önaláírt tanúsítványt használ.
Ha ez nem így van, előfordulhat, hogy kihagyta a köztes tanúsítványokat, amikor exportálta a tanúsítványt a PFX-fájlba.
Gyakori kérdések
- Hogyan győződjön meg arról, hogy az alkalmazás IP-címe nem változik a tanúsítványkötés módosításakor?
- Letilthatom a HTTP-ről HTTPS-be történő kényszerített átirányítást?
- Hogyan módosíthatom az alkalmazás minimális TLS-verzióit?
- Hogyan kezelni a TLS-leállítást az App Service-ben?
Hogyan győződjön meg arról, hogy az alkalmazás IP-címe nem változik a tanúsítványkötés módosításakor?
A bejövő IP-cím akkor is változhat, ha töröl egy kötést, még akkor is, ha a kötés IP SSL. Ez különösen akkor fontos, ha egy már IP SSL-kötésben lévő tanúsítványt újít meg. Az alkalmazás IP-címének módosításának elkerülése érdekében kövesse az alábbi lépéseket:
- Töltse fel az új tanúsítványt.
- Kösse az új tanúsítványt a kívánt egyéni tartományhoz anélkül, hogy törölné a régit. Ez a művelet lecserélni a kötést ahelyett, hogy eltávolítaná a régit.
- Törölje a régi tanúsítványt.
Letilthatom a HTTP-ről HTTPS-be történő kényszerített átirányítást?
Az App Service alapértelmezés szerint átirányítja a HTTP-kérelmeket a HTTPS-hez. A viselkedés letiltásához tekintse meg az általános beállítások konfigurálását.
Hogyan módosíthatom az alkalmazás minimális TLS-verzióit?
Az alkalmazása alapértelmezés szerint a TLS 1.2-t engedélyezi, amely az iparági szabványok, például a PCI DSS szerint ajánlott TLS-szint. A különböző TLS-verziók kényszerítéséhez lásd az általános beállítások konfigurálását.
Hogyan kezelni a TLS-leállítást az App Service-ben?
Az App Service-ben a TLS-leállítás a hálózati terheléselosztóknál történik, így minden HTTPS-kérés titkosítatlan HTTP-kérésként éri el az alkalmazást. Ha az alkalmazáslogikának ellenőriznie kell, hogy a felhasználói kérések titkosítva vannak-e, vizsgálja meg a fejlécet X-Forwarded-Proto
.
A nyelvspecifikus konfigurációs útmutatók, például a Linux Node.js konfigurációs útmutatója bemutatják, hogyan észlelhet HTTPS-munkameneteket az alkalmazáskódban.
Automatizálás szkriptekkel
Azure CLI
Egyéni TLS/SSL-tanúsítvány kötése webalkalmazáshoz
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