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:

Képernyőkép a webböngésző biztonsági figyelmeztetéséről.

Ekkor a biztonságos IIS-webhely a következő példához hasonlóan jelenik meg:

Képernyőkép a böngészőről, amelyen a biztonságos IIS-webhely látható.

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: