Alkalmazásátjáró létrehozása HTTP-ről HTTPS-átirányításra az Azure CLI használatával

Az Azure CLI használatával létrehozhat egy alkalmazásátjárót tLS-/SSL-leállítási tanúsítvánnyal. Az útválasztási szabály a HTTP-forgalom átirányítására szolgál az application gateway HTTPS-portjához. Ebben a példában egy virtuálisgép-méretezési csoportot is létrehoz az application gateway háttérkészletéhez, amely két virtuálisgép-példányt tartalmaz.

Ebből a cikkből megtudhatja, hogyan:

  • Önaláírt tanúsítvány létrehozása
  • Hálózat beállítása
  • Application Gateway létrehozása a tanúsítvánnyal
  • Figyelő objektum és átirányítási szabály hozzáadása
  • Virtuálisgép-méretezési csoport létrehozása az alapértelmezett háttérkészlettel

Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.

Előfeltételek

  • Ehhez az oktatóanyaghoz az Azure CLI 2.0.4-es vagy újabb verziója szükséges. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Önaláírt tanúsítvány létrehozása

Éles használat esetén egy megbízható szolgáltató által aláírt érvényes tanúsítványt kell importálnia. Ebben az oktatóanyagban önaláírt tanúsítványt és pfx-fájlt hoz létre az Openssl paranccsal.

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out appgwcert.crt

Adjon meg olyan értékeket, amelyek a tanúsítvány szempontjából jelentéssel bírnak. Elfogadhatja az alapértelmezett értékeket.

openssl pkcs12 -export -out appgwcert.pfx -inkey privateKey.key -in appgwcert.crt

Adja meg a tanúsítványhoz tartozó jelszót. Ebben a példában az Azure123456! használatban van.

Erőforráscsoport létrehozása

Az erőforráscsoport egy logikai tároló, amelyben az Azure-erőforrások üzembe helyezése és felügyelete történik. Hozzon létre egy erőforráscsoportot az az group create paranccsal.

A következő példában létrehozunk egy myResourceGroupAG nevű erőforráscsoportot az eastus helyen.

az group create --name myResourceGroupAG --location eastus

Hálózati erőforrások létrehozása

Hozza létre a myVNet nevű virtuális hálózatot és a myAGSubnet nevű alhálózatot az az network vnet create paranccsal. Ezután hozzáadhatja a háttérkiszolgálókhoz szükséges myBackendSubnet nevű alhálózatot az az network vnet subnet create parancs használatával. Hozza létre a myAGPublicIPAddress elnevezésű nyilvános IP-címet az az network public-ip create paranccsal.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.0.1.0/24
az network vnet subnet create \
  --name myBackendSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet \
  --address-prefix 10.0.2.0/24
az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress

Application Gateway létrehozása

Az az network application-gateway create paranccsal létrehozhatja a myAppGateway nevű alkalmazásátjárót. Amikor az Azure CLI-vel hoz létre egy Application Gatewayt, meg kell adnia bizonyos konfigurációs adatokat, például a kapacitást, az SKU-t, valamint a HTTP-beállításokat.

Az alkalmazásátjáró a korábban létrehozott myAGSubnet alhálózathoz és myAGPublicIPAddress IP-címhez lesz rendelve. Ebben a példában társítja a létrehozott tanúsítványt és annak jelszavát az alkalmazásátjáró létrehozásakor.

az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet \
  --subnet myAGsubnet \
  --capacity 2 \
  --sku Standard_Medium \
  --http-settings-cookie-based-affinity Disabled \
  --frontend-port 443 \
  --http-settings-port 80 \
  --http-settings-protocol Http \
  --public-ip-address myAGPublicIPAddress \
  --cert-file appgwcert.pfx \
  --cert-password "Azure123456!"

Az alkalmazásátjáró létrehozása néhány percig is eltarthat. Az alkalmazásátjáró létrehozása után a következő új funkcióit láthatja:

  • appGatewayBackendPool – Az Application Gatewayeknek legalább egy háttércímkészlettel kell rendelkezniük.
  • appGatewayBackendHttpSettings – Meghatározza, hogy a kommunikációhoz a rendszer a 80-as portot és egy HTTP-protokollt használ.
  • appGatewayHttpListener – Az appGatewayBackendPool készlethez társított alapértelmezett figyelő.
  • appGatewayFrontendIP – Hozzárendeli a myAGPublicIPAddress IP-címet az appGatewayHttpListener figyelőhöz.
  • rule1 – Az appGatewayHttpListener figyelőhöz rendelt alapértelmezett útválasztási szabály.

Figyelő objektum és átirányítási szabály hozzáadása

A HTTP-port hozzáadása

Az az network application-gateway frontend-port create használatával hozzáadhatja a HTTP-portot az application gatewayhez.

az network application-gateway frontend-port create \
  --port 80 \
  --gateway-name myAppGateway \
  --resource-group myResourceGroupAG \
  --name httpPort

A HTTP-figyelő hozzáadása

Az az network application-gateway http-listener create használatával hozzáadhatja a myListener nevű figyelőt az application gatewayhez.

az network application-gateway http-listener create \
  --name myListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port httpPort \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway

Az átirányítási konfiguráció hozzáadása

Adja hozzá a HTTP-ről HTTPS-re történő átirányítás konfigurációját az alkalmazásátjáróhoz az az network application-gateway redirect-config create parancs használatával.

az network application-gateway redirect-config create \
  --name httpToHttps \
  --gateway-name myAppGateway \
  --resource-group myResourceGroupAG \
  --type Permanent \
  --target-listener appGatewayHttpListener \
  --include-path true \
  --include-query-string true

Az útválasztási szabály hozzáadása

Adja hozzá a szabály2 nevű útválasztási szabályt az átirányítási konfigurációval az alkalmazás-átjáróhoz az az network application-gateway rule create parancs használatával.

az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name rule2 \
  --resource-group myResourceGroupAG \
  --http-listener myListener \
  --rule-type Basic \
  --redirect-config httpToHttps

Virtuális gép méretezési csoport létrehozása

Ebben a példában egy myvmss nevű virtuális gép méretezési készletet hoz létre, amely kiszolgálókat biztosít az Application Gateway háttérkészletéhez. A méretezési csoportban lévő virtuális gépek a myBackendSubnet alhálózathoz és az appGatewayBackendPool készlethez rendelve vannak. A méretezési csoportot az az vmss create paranccsal hozhatja létre.

az vmss create \
  --name myvmss \
  --resource-group myResourceGroupAG \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --admin-password Azure123456! \
  --instance-count 2 \
  --vnet-name myVNet \
  --subnet myBackendSubnet \
  --vm-sku Standard_DS2 \
  --upgrade-policy-mode Automatic \
  --app-gateway myAppGateway \
  --backend-pool-name appGatewayBackendPool

Az NGINX telepítése

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroupAG \
  --vmss-name myvmss \
  --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"],
  "commandToExecute": "./install_nginx.sh" }'

Az Application Gateway tesztelése

Az alkalmazásátjáró nyilvános IP-címének lekéréséhez használhatja az az network public-ip show parancsot. Másolja a nyilvános IP-címet, majd illessze be a böngésző címsorába.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Biztonsági figyelmeztetés

Ha önaláírt tanúsítványt használt, a biztonsági figyelmeztetés elfogadásához válassza a Részletek lehetőséget, majd válassza a Továbblépés a weblapra lehetőséget. Ekkor a biztonságos NGINX-webhely a következő példához hasonlóan jelenik meg:

Az alap URL-cím tesztelése az alkalmazásátjáróban

Következő lépések