Tworzenie bramy aplikacji z przekierowaniem HTTP do HTTPS przy użyciu interfejsu wiersza polecenia platformy Azure
Interfejs wiersza polecenia platformy Azure umożliwia utworzenie bramy aplikacji z certyfikatem na potrzeby kończenia żądań protokołu TLS/SSL. Reguła routingu służy do przekierowywania ruchu HTTP do portu HTTPS w bramie aplikacji. W tym przykładzie utworzysz również zestaw skalowania maszyn wirtualnych dla puli zaplecza bramy aplikacji, która zawiera dwa wystąpienia maszyn wirtualnych.
W tym artykule omówiono sposób wykonywania następujących zadań:
- Tworzenie certyfikatu z podpisem własnym
- Konfigurowanie sieci
- Tworzenie bramy aplikacji z certyfikatem
- Dodawanie odbiornika i reguły przekierowania
- Tworzenie zestawu skalowania maszyn wirtualnych z domyślną pulą zaplecza
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
- Ten samouczek wymaga wersji 2.0.4 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.
Tworzenie certyfikatu z podpisem własnym
Do użytku produkcyjnego należy zaimportować prawidłowy certyfikat podpisany przez zaufanego dostawcę. W tym samouczku utworzysz certyfikat z podpisem własnym i plik pfx za pomocą polecenia biblioteki openssl.
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out appgwcert.crt
Wprowadź wartości odpowiednie dla Twojego certyfikatu. Możesz zaakceptować wartości domyślne.
openssl pkcs12 -export -out appgwcert.pfx -inkey privateKey.key -in appgwcert.crt
Wprowadź hasło certyfikatu. W tym przykładzie jest używana usługa Azure123456!
Tworzenie grupy zasobów
Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. Utwórz grupę zasobów za pomocą polecenia az group create.
W poniższym przykładzie pokazano sposób tworzenia grupy zasobów o nazwie myResourceGroupAG w lokalizacji eastus.
az group create --name myResourceGroupAG --location eastus
Tworzenie zasobów sieciowych
Utwórz sieć wirtualną o nazwie myVNet i podsieć o nazwie myAGSubnet przy użyciu polecenia az network vnet create. Następnie możesz dodać podsieć o nazwie myBackendSubnet wymagane przez serwery zaplecza przy użyciu polecenia az network vnet subnet create. Utwórz publiczny adres IP o nazwie myAGPublicIPAddress przy użyciu polecenia az network public-ip create.
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
Tworzenie bramy aplikacji
Można użyć polecenia az network application-gateway create w celu utworzenia bramy aplikacji o nazwie myAppGateway. Podczas tworzenia bramy aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure należy podać informacje o konfiguracji, takie jak pojemność, jednostka SKU i ustawienia protokołu HTTP.
Brama aplikacji jest przypisywana do wcześniej utworzonej podsieci myAGSubnet i adresu myAGPublicIPAddress. W tym przykładzie podczas tworzenia bramy aplikacji należy skojarzyć utworzony certyfikat i jego hasło.
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!"
Tworzenie bramy aplikacji może potrwać kilka minut. Po utworzeniu bramy aplikacji możesz zauważyć następujące nowe funkcje:
- appGatewayBackendPool — brama aplikacji musi mieć co najmniej jedną pulę adresów zaplecza.
- appGatewayBackendHttpSettings — określa, że port 80 i protokół HTTP są używane do komunikacji.
- appGatewayHttpListener — domyślny odbiornik skojarzony z pulą appGatewayBackendPool.
- appGatewayFrontendIP — przypisuje adres myAGPublicIPAddress do odbiornika appGatewayHttpListener.
- rule1 — domyślna reguła routingu skojarzona z odbiornikiem appGatewayHttpListener.
Dodawanie odbiornika i reguły przekierowania
Dodawanie portu HTTP
Aby dodać port HTTP do bramy aplikacji, możesz użyć polecenia az network application-gateway frontend-port create .
az network application-gateway frontend-port create \
--port 80 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name httpPort
Dodawanie odbiornika HTTP
Aby dodać odbiornik o nazwie myListener do bramy aplikacji, możesz użyć polecenia az network application-gateway http-listener create.
az network application-gateway http-listener create \
--name myListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port httpPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Dodawanie konfiguracji przekierowania
Dodaj konfigurację przekierowania HTTP do protokołu HTTPS do bramy aplikacji przy użyciu polecenia az network application-gateway redirect-config create.
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
Dodawanie reguły routingu
Dodaj regułę routingu o nazwie rule2 z konfiguracją przekierowania do bramy aplikacji przy użyciu polecenia az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name rule2 \
--resource-group myResourceGroupAG \
--http-listener myListener \
--rule-type Basic \
--redirect-config httpToHttps
Tworzenie zestawu skalowania maszyn wirtualnych
W tym przykładzie utworzysz zestaw skalowania maszyn wirtualnych o nazwie myvmss , który udostępnia serwery dla puli zaplecza w bramie aplikacji. Maszyny wirtualne w zestawie skalowania są kojarzone z podsiecią myBackendSubnet i pulą appGatewayBackendPool. Aby utworzyć zestaw skalowania, możesz użyć polecenia az vmss create.
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
Instalowanie serwera NGINX
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" }'
Testowanie bramy aplikacji
Aby uzyskać publiczny adres IP bramy aplikacji, możesz użyć polecenia az network public-ip show. Skopiuj publiczny adres IP, a następnie wklej go na pasku adresu przeglądarki.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Aby zaakceptować ostrzeżenie o zabezpieczeniach, jeśli używasz certyfikatu z podpisem własnym, wybierz pozycję Szczegóły, a następnie pozycję Przejdź do strony internetowej. Zostanie wyświetlona zabezpieczona witryna serwera NGINX, tak jak w poniższym przykładzie: