Oktatóanyag: Webkiszolgáló védelme windowsos virtuális gépen az Azure-ban a Key Vault-ben tárolt TLS-tanúsítványokkal
A következőkre vonatkozik: ✔️ Windows rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
Megjegyzés
Ez a dokumentum jelenleg csak általánosított képekhez használható. Ha speciális lemezzel próbálja meg ezt az oktatóanyagot, hibaüzenet jelenik meg.
A webkiszolgálók védelméhez a Transport Layer Security (TLS) tanúsítvány használható a webes forgalom titkosítására. A TLS-tanúsítványok tárolhatók az Azure Key Vault, és lehetővé teszik a tanúsítványok biztonságos üzembe helyezését az Azure-beli Windows rendszerű virtuális gépeken. Ezen oktatóanyag segítségével megtanulhatja a következőket:
- Azure-Key Vault létrehozása.
- Tanúsítvány létrehozása vagy feltöltése a Key Vault.
- Hozzon létre egy virtuális gépet, és telepítse az IIS-webkiszolgálót.
- Adja be a tanúsítványt a virtuális gépbe, és konfigurálja az IIS-t egy TLS-kötéssel.
Az Azure Cloud Shell elindítása
Az Azure Cloud Shell egy olyan ingyenes interaktív kezelőfelület, amelyet a jelen cikkben található lépések futtatására használhat. A fiókjával való használat érdekében a gyakran használt Azure-eszközök már előre telepítve és konfigurálva vannak rajta.
A Cloud Shell megnyitásához egyszerűen válassza a Kódblokk jobb felső sarkában található Open CloudShell (CloudShell megnyitása) lehetőséget. A Cloud Shellt egy külön böngészőlapon is elindíthatja a https://shell.azure.com/powershell cím megnyitásával. Kattintson a Másolás gombra a kódblokkok másolásához, illessze be őket a Cloud Shell, és nyomja le az Enter billentyűt a futtatáshoz.
Áttekintés
Az Azure Key Vault megvédi a titkosítási kulcsokat és titkos kódokat, például a tanúsítványokat és jelszavakat. A Key Vault leegyszerűsíti a tanúsítványkezelési folyamatot, valamint lehetővé teszi a tanúsítványokhoz hozzáférő kulcsok feletti teljes körű felügyeletet. Létrehozhat egy önaláírt tanúsítványt Key Vault belül, vagy feltölthet egy meglévő megbízható tanúsítványt, amely már a tulajdonosa.
Ahelyett, hogy egy beépített tanúsítványokat tartalmazó egyéni virtuálisgép-rendszerképet használna, injektáljon tanúsítványokat egy futó virtuális gépbe. Ez a folyamat biztosítja, hogy a legnaprakészebb tanúsítványok legyenek telepítve a webkiszolgálókon az üzembe helyezés alatt. Ha frissíti vagy lecseréli a tanúsítványt, nem kell új rendszerképet is létrehoznia a virtuális gépekről. A rendszer automatikusan beszúrja a legújabb tanúsítványokat, amikor további virtuális gépeket hoz létre. A tanúsítványok a folyamat során egyszer sem hagyják el az Azure platformot, és nem jelennek meg szkriptekben, a parancssori előzményekben vagy sablonokban.
Azure Key Vault létrehozása;
A Key Vault és a tanúsítványok létrehozása előtt hozzon létre egy erőforráscsoportot a New-AzResourceGroup paranccsal. A következő példában létrehozunk egy myResourceGroupSecureWeb nevű erőforráscsoportot az USA keleti régiója helyen:
$resourceGroup = "myResourceGroupSecureWeb"
$location = "East US"
New-AzResourceGroup -ResourceGroupName $resourceGroup -Location $location
Ezután hozzon létre egy Key Vault a New-AzKeyVault paranccsal. Minden Key Vault egyedi névre van szükség, és kisbetűsnek kell lennie. Cserélje le a elemet mykeyvault
a saját egyedi Key Vault nevére az alábbi példában:
$keyvaultName="mykeyvault"
New-AzKeyVault -VaultName $keyvaultName `
-ResourceGroup $resourceGroup `
-Location $location `
-EnabledForDeployment
Tanúsítvány létrehozása és tárolása a Key Vault
Éles használat esetén importálnia kell egy megbízható szolgáltató által aláírt érvényes tanúsítványt az Import-AzKeyVaultCertificate paranccsal. Ebben az oktatóanyagban az alábbi példa bemutatja, hogyan hozhat létre önaláírt tanúsítványt az Add-AzKeyVaultCertificate paranccsal, amely a New-AzKeyVaultCertificatePolicy alapértelmezett tanúsítványszabályzatát használja.
$policy = New-AzKeyVaultCertificatePolicy `
-SubjectName "CN=www.contoso.com" `
-SecretContentType "application/x-pkcs12" `
-IssuerName Self `
-ValidityInMonths 12
Add-AzKeyVaultCertificate `
-VaultName $keyvaultName `
-Name "mycert" `
-CertificatePolicy $policy
Virtuális gép létrehozása
Először a Get-Credential paranccsal állítsa be a virtuális gép rendszergazdai felhasználónevét és jelszavát:
$cred = Get-Credential
Most már létrehozhatja a virtuális gépet a New-AzVM használatával. Az alábbi példában egy myVM nevű virtuális gépet hozunk létre az USA keleti régiója helyen. Ha még nem léteznek, létrejönnek a támogató hálózati erőforrások. A biztonságos webes forgalom engedélyezéséhez a parancsmag megnyitja a 443-as portot is.
# Create a VM
New-AzVm `
-ResourceGroupName $resourceGroup `
-Name "myVM" `
-Location $location `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-PublicIpAddressName "myPublicIpAddress" `
-Credential $cred `
-OpenPorts 443
# Use the Custom Script Extension to install IIS
Set-AzVMExtension -ResourceGroupName $resourceGroup `
-ExtensionName "IIS" `
-VMName "myVM" `
-Location $location `
-Publisher "Microsoft.Compute" `
-ExtensionType "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server -IncludeManagementTools"}'
A virtuális gép létrehozása néhány percig tart. Az utolsó lépés az Azure Custom Script Extension használatával telepíti az IIS-webkiszolgálót a Set-AzVmExtension paranccsal.
Tanúsítvány hozzáadása egy virtuális géphez a Key Vaultból
Ha hozzá szeretné adni a tanúsítványt Key Vault egy virtuális géphez, szerezze be a tanúsítvány azonosítóját a Get-AzKeyVaultSecret paranccsal. Adja hozzá a tanúsítványt a virtuális géphez az Add-AzVMSecret paranccsal:
$certURL=(Get-AzKeyVaultSecret -VaultName $keyvaultName -Name "mycert").id
$vm=Get-AzVM -ResourceGroupName $resourceGroup -Name "myVM"
$vaultId=(Get-AzKeyVault -ResourceGroupName $resourceGroup -VaultName $keyVaultName).ResourceId
$vm = Add-AzVMSecret -VM $vm -SourceVaultId $vaultId -CertificateStore "My" -CertificateUrl $certURL | Update-AzVM
Az IIS konfigurálása a tanúsítvány használatára
Az IIS-konfiguráció frissítéséhez használja ismét az Egyéni szkriptbővítményt a Set-AzVMExtension paranccsal. Ez a frissítés alkalmazza a Key Vaultból beszúrt tanúsítványt az IIS-re, és konfigurálja a webes kötést:
$publicSettings = '{
"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/secure-iis.ps1"],
"commandToExecute":"powershell -ExecutionPolicy Unrestricted -File secure-iis.ps1"
}'
Set-AzVMExtension -ResourceGroupName $resourceGroup `
-ExtensionName "IIS" `
-VMName "myVM" `
-Location $location `
-Publisher "Microsoft.Compute" `
-ExtensionType "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-SettingString $publicSettings
A biztonságos webalkalmazás tesztelése
Szerezze be a virtuális gép nyilvános IP-címét a Get-AzPublicIPAddress paranccsal. A következő példa a korábban létrehozott myPublicIP
IP-címét kéri le:
Get-AzPublicIPAddress -ResourceGroupName $resourceGroup -Name "myPublicIPAddress" | select "IpAddress"
Most nyisson meg egy webböngészőt, és írja be a https://<myPublicIP>
címet a címsorba. Ha önaláírt tanúsítványt használt, fogadja el a biztonsági figyelmeztetést, válassza a Részletek lehetőséget, majd lépjen a weblapra:
Ekkor a biztonságos IIS-webhely a következő példához hasonlóan jelenik meg:
Következő lépések
Ebben az oktatóanyagban az Azure Key Vault-ben tárolt TLS-tanúsítvánnyal védett egy IIS-webkiszolgálót. Megtanulta végrehajtani az alábbi műveleteket:
- Azure-Key Vault létrehozása.
- Tanúsítvány létrehozása vagy feltöltése a Key Vault.
- Hozzon létre egy virtuális gépet, és telepítse az IIS-webkiszolgálót.
- Adja be a tanúsítványt a virtuális gépbe, és konfigurálja az IIS-t egy TLS-kötéssel.
Előre összeállított virtuálisgép-szkriptmintákért lásd: