練習 - 為加密設定後端集區

已完成

您想要為貨運入口網站應用程式實作端對端加密。 加密使用者與伺服器之間的所有資料,可協助確保不會有未經授權的使用者攔截並讀取資料。

在本單元中,您將設定 Web 應用程式和應用程式閘道。 接下來,您將建立一些自我簽署的 SSL 憑證,並啟用後端集區的加密,協助保護從應用程式閘道到伺服器的流量。

下圖強調您要在這個練習中設定的項目。 您正在使用 Azure 應用程式閘道 v2 來設定應用程式閘道。

Diagram that highlights the elements (backend pool, SSL certificate, and HTTP settings) created in this exercise.

部署虛擬機器和應用程式閘道

  1. 在您的瀏覽器中開啟 Azure Cloud Shell,並使用要建立資源的訂用帳戶存取權登入目錄。 我們將針對此練習使用 Bash 殼層環境。

  2. 在 Cloud Shell 中執行下列命令,為資源建立資源群組。 以您的資源群組名稱取代 <resource group name>,並以資源要部署的 Azure 區域取代 <location>

    az group create --resource-group <resource group name> --location <location>
    
  3. 在 Cloud Shell 中執行下列命令來建立變數,以儲存您的資源群組名稱:

    export rgName=<resource group name>
    
    
  4. 在 Azure Cloud Shell 中,執行下列命令來下載貨運入口網站的原始程式碼:

    git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
    
  5. 移至 shippingportal 資料夾:

    cd shippingportal
    
  6. 執行下列設定指令碼來建立虛擬機器、憑證,以及應用程式閘道:

    bash setup-infra.sh
    

    注意

    指令碼需要幾分鐘才能完成。 請讓其透過多個處理序執行,以解除封裝和設定閘道和資源。 您應該會看到處理序成功,且包含零個警告和零個錯誤。

驗證網頁伺服器已正確設定

  1. 執行下列命令,顯示設定指令碼所建立的網頁伺服器 URL。

    echo https://"$(az vm show \
      --name webservervm1 \
      --resource-group $rgName \
      --show-details \
      --query [publicIps] \
      --output tsv)"
    
  2. 複製該 URL 並貼到您的網頁瀏覽器中,然後前往該 URL。

    您的瀏覽器很可能會顯示類似下圖的警告訊息。 取決於您的瀏覽器,警告訊息中的確切內容可能有所不同。 範例影像來自 Microsoft Edge。

    Screenshot of a warning about an unauthenticated server in Microsoft Edge.

    會出現此警告是因為您使用未經驗證的自我簽署憑證來設定網頁伺服器。 在此警告頁面上,尋找並選取前往該網站的連結;例如選取 [前往網頁] 或選取 [進階],然後選取 [繼續],或是類似的動作。 結果會帶您到貨運入口網站首頁,如下圖所示。 此範例應用程式用於測試伺服器是否設定正確。

    Screenshot of the shipping portal home page Microsoft Edge.

為加密設定後端集區

  1. 執行下列命令,取得作為網頁伺服器的虛擬機器私人 IP 位址。

    echo privateip="$(az vm list-ip-addresses \
      --resource-group $rgName \
      --name webservervm1 \
      --query "[0].virtualMachine.network.privateIpAddresses[0]" \
      --output tsv)"
    
  2. 建立變數來儲存您的私人 IP 位址。 將 <privateIP> 取代為上一個步驟中的 IP 位址。

    export privateip=<privateIP>
    
    
  3. 使用虛擬機器的私人 IP 位址來設定應用程式閘道後端集區。

    az network application-gateway address-pool create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name ap-backend \
      --servers $privateip
    
  4. 將後端集區中的 VM 憑證上傳到應用程式閘道,作為受信任的根憑證。 安裝指令碼產生了此憑證,並將其儲存在 shipping-ssl.crt 檔案中。

    az network application-gateway root-cert create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name shipping-root-cert \
      --cert-file server-config/shipping-ssl.crt
    
  5. 進行 HTTP 設定以使用該憑證:

    az network application-gateway http-settings create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name https-settings \
      --port 443 \
      --protocol Https \
      --host-name $privateip
    
  6. 執行下列命令來將後端集區的受信任憑證設為後端 VM 上所安裝的憑證:

    export rgID="$(az group show --name $rgName --query id --output tsv)"
    
    az network application-gateway http-settings update \
        --resource-group $rgName \
        --gateway-name gw-shipping \
        --name https-settings \
        --set trustedRootCertificates='[{"id": "'$rgID'/providers/Microsoft.Network/applicationGateways/gw-shipping/trustedRootCertificates/shipping-root-cert"}]'
    

您現在已有執行貨運入口網站的虛擬機器,以及應用程式閘道。 您現在已設定應用程式閘道和您應用程式伺服器之間的 SSL 加密。