Egyéni DNS-név védelme TLS-/SSL-kötéssel a Azure App Service
Ez a cikk bemutatja, hogyan védheti meg az egyéni tartományt a App Service alkalmazásban vagy függvényalkalmazásban tanúsítványkötés létrehozásával. Ha végzett, elérheti a App Service alkalmazást az https://
egyéni DNS-név végpontján (például https://www.contoso.com
).
Előfeltételek
- Skálázza fel App Service alkalmazást a támogatott tarifacsomagok egyikére: Alapszintű, Standard, Prémium.
- Rendeljen hozzá egy tartománynevet az alkalmazáshoz , vagy vásárolja meg és konfigurálja az Azure-ban.
1. A kötés hozzáadása
A Azure Portal:
A bal oldali menüben válassza az App Services><alkalmazásnév elemét>.
Az alkalmazás bal oldali navigációs sávjában 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 tanúsítvánnyal a kijelölt egyéni tartományhoz, a Tanúsítvány területen kiválaszthatja. Ha nem, akkor egy tanúsítványt kell hozzáadnia a Forrás elem egyik kijelölésével.
- Felügyelt tanúsítvány létrehozása App Service – Lehetővé teszi, App Service hozzon létre felügyelt tanúsítványt a kiválasztott tartományhoz. Ez a legegyszerűbb lehetőség. További információ: Ingyenes felügyelt tanúsítvány létrehozása.
- App Service tanúsítvány importálása – A App Service tanúsítványban válasszon egy App Service tanúsítványt, amit a kiválasztott tartományhoz vásárolt.
- Tanúsítvány feltöltése (.pfx) – Kövesse a privát tanúsítvány feltöltése a PFX-tanúsítvány helyi gépről való feltöltéséhez és a tanúsítvány jelszavának megadásához című témakör munkafolyamatát.
- Importálás Key Vault - 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.
A TLS/SSL típusban válasszon az SNI SSL és az IP-alapú SSL között.
- 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ő (beleértve az Internet Explorert, a Chrome-ot, a Firefoxot és az Opera-t) 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 egy dedikált nyilvános IP-cím biztonságossá tételéhez. A kötés konfigurálása után kövesse a 2. lépésben leírt lépéseket . IP-alapú SSL-rekordok újraképe.
Az IP SSL csak alapszintű vagy magasabb szinten támogatott.
- 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 egy dedikált nyilvános IP-cím biztonságossá tételéhez. A kötés konfigurálása után kövesse a 2. lépésben leírt lépéseket . IP-alapú SSL-rekordok újraképe.
Új tanúsítvány hozzáadásakor ellenőrizze az új tanúsítványt az Ellenőrzés gombra kattintva.
Válassza a Hozzáadás lehetőséget.
A művelet befejezése után az egyéni tartomány TLS/SSL-állapota Biztonságosra változik.
Megjegyzés
Az egyéni tartományokbiztonságos állapota azt jelenti, hogy tanúsítvány védi, de App Service nem ellenőrzi, hogy a tanúsítvány önaláírt vagy lejárt-e, ami a böngészőkben hiba vagy figyelmeztetés megjelenítését is okozhatja.
2. Az 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 az egyéni tartomány HTTPS-tesztjéhez.
Két módosítást kell végrehajtania, amelyek lehetségesek:
Alapértelmezés szerint az alkalmazás megosztott nyilvános IP-címet használ. Amikor egy tanúsítványt IP SSL-vel köt, App Service létrehoz egy új, dedikált IP-címet az alkalmazáshoz. Ha leképezett egy A rekordot 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ány lapja 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 rendelkezik a következőhöz:
<app-name>.azurewebsites.net
, a CNAME-megfeleltetések újraképezésével mutassonsni.<app-name>.azurewebsites.net
rá (adja hozzá azsni
előtagot).
3. A HTTPS tesztelése
A különböző böngészőkben https://<your.custom.domain>
tallózással ellenőrizheti, hogy az szolgálja-e ki az alkalmazást.
Az alkalmazáskód az "x-appservice-proto" fejlécen keresztül tudja megvizsgálni a protokollt. A fejléc értéke http
vagy https
.
Megjegyzé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 nem így van, előfordulhat, hogy kihagyott néhány köztes tanúsítványt, amikor a tanúsítványt a PFX-fájlba exportálta.
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 KÉNYSZERÍTETT ÁTIRÁNYÍTÁSt HTTP-ről HTTPS-be?
- Hogyan módosíthatom az alkalmazás minimális TLS-verzióit?
- Hogyan kezeli a TLS-megszakítást App Service?
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 megvá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. Annak érdekében, hogy az alkalmazás IP-címe ne változzon, kövesse sorrendben 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 KÉNYSZERÍTETT ÁTIRÁNYÍTÁSt HTTP-ről HTTPS-be?
Alapértelmezés szerint App Service a HTTP-kérések https-be való átirányítását kényszeríti. A viselkedés letiltásához lásd: Általános beállítások konfigurálása.
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: Általános beállítások konfigurálása.
Hogyan kezeli a TLS-megszakítást App Service?
A App Service TLS-leállítása 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 az X-Forwarded-Proto
fejlécet.
A nyelvspecifikus konfigurációs útmutatók, például a Linux Node.js konfigurációs útmutatója bemutatja, 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