使用 Azure 入口網站來建立具有 HTTP 到 HTTPS 重新導向功能的應用程式閘道
您可以使用 Azure 入口網站來建立包含 TLS 終止憑證的應用程式閘道。 路由規則可用來將 HTTP 流量重新導向至您應用程式閘道中的 HTTPS 連接埠。 在此範例中,您也會為應用程式閘道的後端集區,建立一個包含兩個虛擬機器執行個體的虛擬機器擴展集。
在本文中,您將學會如何:
- 建立自我簽署憑證
- 設定網路
- 建立包含憑證的應用程式閘道
- 新增接聽程式和重新導向規則
- 建立包含預設後端集區的虛擬機器擴展集
如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
本教學課程需要 Azure PowerShell 模組 1.0.0 版或更新版本,才能建立憑證和安裝 IIS。 執行 Get-Module -ListAvailable Az
以尋找版本。 如果您需要升級,請參閱安裝 Azure PowerShell 模組。 若要在本教學課程中執行命令,則也需要執行 Login-AzAccount
以建立與 Azure 的連線。
建立自我簽署憑證
若要在生產環境中使用,您應該匯入由受信任提供者所簽署的有效憑證。 在此教學課程中,您要使用 New-selfsignedcertificate 來建立自我簽署的憑證。 您可以使用 Export-PfxCertificate 搭配系統所傳回的指紋,以將 pfx 檔案從憑證匯出。
New-SelfSignedCertificate `
-certstorelocation cert:\localmachine\my `
-dnsname www.contoso.com
您應該會看到類似這個結果的內容:
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my
Thumbprint Subject
---------- -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 CN=www.contoso.com
使用指紋來建立 pfx 檔案:
$pwd = ConvertTo-SecureString -String "Azure123456!" -Force -AsPlainText
Export-PfxCertificate `
-cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
-FilePath c:\appgwcert.pfx `
-Password $pwd
建立應用程式閘道
需要虛擬網路,才能在您所建立的資源之間進行通訊。 這個範例中會建立兩個子網路:一個用於應用程式閘道,另一個用於後端伺服器。 您建立應用程式閘道時,可以同時建立虛擬網路。
登入 Azure 入口網站。
按一下 Azure 入口網站左上角的 [建立資源]。
在 [精選] 清單中選取 [網路],然後選取 [應用程式閘道]。
針對應用程式閘道輸入這些值:
myAppGateway - 作為應用程式閘道的名稱。
myResourceGroupAG - 作為新資源群組。
接受其他設定的預設值,然後按一下 [確定]。
按一下 [選擇虛擬網路],按一下 [新建],然後針對虛擬網路輸入這些值:
myVNet - 作為虛擬網路的名稱。
10.0.0.0/16 - 作為虛擬網路位址空間。
myAGSubnet - 作為子網路名稱。
10.0.0.0/24 - 作為子網路位址空間。
按一下 [確定] 以建立虛擬網路和子網路。
在 [前端 IP 組態] 下方確認 [IP 位址類型] 為 [公用],並已選取 [新建]。 輸入 myAGPublicIPAddress 作為名稱。 接受其他設定的預設值,然後按一下 [確定]。
在 [接聽程式設定] 下方,選取 HTTPS,然後選取 [選取檔案],再瀏覽到 c:\appgwcert.pfx 檔案並選取 [開啟]。
輸入 appgwcert 作為憑證名稱,輸入 Azure123456! 作為密碼。
讓 Web 應用程式防火牆保持停用,然後選取 [確定]。
檢閱 [摘要] 頁面上的設定,然後選取 [確定] 以建立網路資源和應用程式閘道。 建立應用程式閘道可能需要幾分鐘的時間,請等候部署成功完成後,再繼續進行至下一節。
新增子網路
選取左側功能表中的 [所有資源],然後從 [資源] 清單中選取 [myVNet]。
選取 [子網路],然後按一下 [子網路]。
輸入 myBackendSubnet 作為子網路名稱。
輸入 10.0.2.0/24 作為位址範圍,然後選取 [確定]。
新增接聽程式和重新導向規則
新增接聽程式
首先,針對連接埠 80 新增名為 myListener 的接聽程式。
- 開啟 myResourceGroupAG 資源群組,然後選取 myAppGateway。
- 選取 [接聽程式],然後選取 [+ 基本]。
- 輸入 MyListener 作為名稱。
- 輸入 httpPort 作為新的前端連接埠名稱,而 80 作為連接埠。
- 確定將通訊協定設定為 HTTP,然後選取 [確定]。
新增具有重新導向設定的路由規則
- 在 myAppGateway 上,選取 [規則],然後選取 [+要求路由規則]。
- 針對 [規則名稱],輸入 Rule2。
- 確定已選取 MyListener 作為接聽程式。
- 按一下 [後端目標] 索引標籤,然後選取 [目標類型] 作為 [重新導向]。
- 針對 [重新導向類型],選取 [永久]。
- 針對 [重新導向目標],選取 [接聽程式]。
- 確定 [目標接聽程式] 設定為 appGatewayHttpListener。
- 針對 [包含查詢字串] 和 [包含路徑],選取 [是]。
- 選取 [新增]。
注意
appGatewayHttpListener 是預設接聽程式名稱。 如需詳細資訊,請參閱應用程式閘道接聽程式設定。
建立虛擬機器擴展集
在此範例中,您會建立虛擬機器擴展集,以在應用程式閘道中提供後端集區的伺服器。
- 在入口網站左上角選取 [+建立資源]。
- 選取 [計算]。
- 在搜尋方塊中,輸入擴展集,然後按 Enter 鍵。
- 選取 [虛擬機器擴展集],然後選取 [建立]。
- 針對 [虛擬機器擴展集名稱],輸入 myvmss。
- 針對 [作業系統磁碟映像],確定已選取 [Windows Server 2016 Datacenter]。
- 針對 [資源群組],選取 myResourceGroupAG。
- 針對 [使用者名稱],輸入 azureuser。
- 針對 [密碼],輸入 Azure123456!,然後確認密碼。
- 確認 [執行個體計數] 的值為 2。
- 針對 [執行個體大小],選取D2s_v3。
- 在 [網路] 下方,確定 [選擇負載平衡選項] 設定為 [應用程式閘道]。
- 確定 [應用程式閘道] 設定為 myAppGateway。
- 確定 [子網路] 設定為 myBackendSubnet。
- 選取 建立。
建立擴展集與適當後端集區的關聯
虛擬機器擴展集入口網站 UI 建立擴展集的新後端集區,但您想要將之與現有的 appGatewayBackendPool 建立關聯。
- 開啟 myResourceGroupAG 資源群組。
- 選取 myAppGateway。
- 選取 [後端集區]。
- 選取 myAppGatewaymyvmss。
- 選取 [移除後端集區中的所有目標]。
- 選取 [儲存]。
- 此流程完成後,選取 myAppGatewaymyvmss 後端集區,選取 [刪除],然後選取 [確定] 加以確認。
- 選取 appGatewayBackendPool。
- 在 [目標] 下方,選取 VMSS。
- 在 VMSS 下方,選取 myvmss。
- 在 [網路介面組態] 下方,選取 myvmssNic。
- 選取 [儲存]。
升級擴展集
最後,您必須將含有這些變更擴展集升級。
- 選取 myvmss 擴展集。
- 在 [設定] 底下,選取 [執行個體]。
- 兩個執行個體都選取,然後選取 [升級]。
- 選取是以確認。
- 如此完成之後,返回 myAppGateway,然後選取 [後端集區]。 您現在應會看到 appGatewayBackendPool 有兩個目標,而 myAppGatewaymyvmss 有零個目標。
- 選取 myAppGatewaymyvmss,然後選取 [刪除]。
- 選取確定以確認。
安裝 IIS
輕鬆地在擴展集上安裝 IIS,就是使用 PowerShell。 從入口網站按一下 Cloud Shell 圖示,並確定已選取 PowerShell。
將下列指令碼貼到 PowerShell 視窗中,然後按 ENTER 鍵。
$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "customScript" `
-Publisher "Microsoft.Compute" `
-Type "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-Setting $publicSettings
Update-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss `
-VirtualMachineScaleSet $vmss
升級擴展集
使用 IIS 變更執行個體之後,您必須再次將含有這項變更的擴展集升級。
- 選取 myvmss 擴展集。
- 在 [設定] 底下,選取 [執行個體]。
- 兩個執行個體都選取,然後選取 [升級]。
- 選取是以確認。
測試應用程式閘道
您可以從應用程式閘道的 [概觀] 頁面,取得應用程式的公用 IP 位址。
選取 myAppGateway。
在 [概觀] 頁面上,記下 [前端公用 IP 位址] 下方的 IP 位址。
將公用 IP 位址複製並貼到您瀏覽器的網址列。 例如,http://52.170.203.149
若要在使用自我簽署憑證時接受安全性警告,請依序按一下 [詳細資料] 與 [繼續瀏覽網頁]。 接著會顯示受保護的 IIS 網站,如下列範例所示:
下一步
了解如何建立具有內部重新導向的應用程式閘道。