Tworzenie bramy aplikacji z zakończeniem szyfrowania TLS przy użyciu interfejsu wiersza polecenia platformy Azure
Za pomocą interfejsu wiersza polecenia platformy Azure można utworzyć bramę aplikacji z certyfikatem na potrzeby kończenia żądań protokołu TLS. W przypadku serwerów zaplecza można użyć zestawu skalowania maszyn wirtualnych. W tym przykładzie zestaw skalowania zawiera dwa wystąpienia maszyny wirtualnej, które są dodawane do domyślnej puli zaplecza bramy aplikacji.
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
- Tworzenie zestawu skalowania maszyn wirtualnych z domyślną pulą zaplecza
Jeśli wolisz, możesz wykonać tę procedurę przy użyciu programu Azure PowerShell.
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życia w środowisku produkcyjnym należy zaimportować prawidłowy certyfikat podpisany przez zaufanego dostawcę. W tym artykule utworzysz certyfikat z podpisem własnym i plik pfx przy użyciu polecenia 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 \
--allocation-method Static \
--sku Standard \
--location eastus
Tworzenie bramy aplikacji
Aby utworzyć bramę aplikacji, możesz użyć polecenia az network application-gateway create. 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_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 443 \
--http-settings-port 80 \
--http-settings-protocol Http \
--priority "1" \
--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.
Tworzenie zestawu skalowania maszyn wirtualnych
W tym przykładzie utworzysz zestaw skalowania maszyn wirtualnych, który udostępnia serwery domyślnej 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.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Skopiuj publiczny adres IP, a następnie wklej go na pasku adresu przeglądarki. W tym przykładzie adres URL to: https://52.170.203.149.
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:
Czyszczenie zasobów
Gdy grupa zasobów, brama aplikacji i wszystkie pokrewne zasoby nie będą już potrzebne, można je usunąć.
az group delete --name myResourceGroupAG --location eastus
Następne kroki
Tworzenie bramy aplikacji hostującej wiele witryn internetowych