你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可以使用 Azure 门户为 应用程序网关 配置证书,以便使用虚拟机的后端服务器进行 TLS 终止。
本教程中,您将学习如何:
- 创建自签名证书
- 使用证书创建应用程序网关
- 创建用作后端服务器的虚拟机
- 测试应用程序网关
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
注释
建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
先决条件
- Azure 订阅服务
创建自签名证书
在本部分中,将使用 New-SelfSignedCertificate 创建自签名证书。 为应用程序网关创建侦听器时,请将证书上传到 Azure 门户。
在本地计算机上,以管理员身份打开 Windows PowerShell 窗口。 运行以下命令以创建证书:
New-SelfSignedCertificate `
-certstorelocation cert:\localmachine\my `
-dnsname www.contoso.com
你应该会看到类似这样的响应内容:
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my
Thumbprint Subject
---------- -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 CN=www.contoso.com
将 Export-PfxCertificate 与返回的指纹配合使用,以便从证书导出 pfx 文件。 PFXImportCertStore 函数中列出了支持的 PFX 算法。 请确保密码长度为 4 - 12 个字符:
$pwd = ConvertTo-SecureString -String <your password> -Force -AsPlainText
Export-PfxCertificate `
-cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
-FilePath c:\appgwcert.pfx `
-Password $pwd
登录到 Azure
登录到 Azure 门户。
创建应用程序网关
在 Azure 门户菜单中,选择“ + 创建资源>网络>应用程序网关”,或在门户搜索框中搜索 应用程序网关 。
选择 创建。
“基本信息”选项卡
在 “基本信息 ”选项卡上,输入或选择以下值:
资源组:为资源组选择 myResourceGroupAG 。 如果不存在,请选择“ 新建 ”以创建它。
应用程序网关名称:输入 myAppGateway 作为应用程序网关的名称。
Azure 需要一个虚拟网络才能在创建的资源之间通信。 可以创建新的虚拟网络,也可以使用现有的虚拟网络。 在此示例中,你将在创建应用程序网关的同时创建新的虚拟网络。 在不同的子网中创建应用程序网关实例。 在本示例中创建两个子网:一个用于应用程序网关,另一个用于后端服务器。
在 “配置虚拟网络”下,通过选择“ 新建”创建新的虚拟网络。 在打开的“ 创建虚拟网络 ”窗口中,输入以下值来创建虚拟网络和两个子网:
名称:输入 myVNet 以获取虚拟网络的名称。
子网名称 (应用程序网关子网): 子网 网格将显示名为 Default 的子网。 将此子网的名称更改为 myAGSubnet。
应用程序网关子网只能包含应用程序网关。 不允许其他资源。子网名称(后端服务器子网):在“子网”网格的第二行中,在“子网名称”列中输入 myBackendSubnet。
地址范围 (后端服务器子网):在 子网 网格的第二行中,输入不与 myAGSubnet 地址范围重叠的地址范围。 例如,如果 myAGSubnet 的地址范围为 10.0.0.0/24,那么 myBackendSubnet 的地址范围请设为 10.0.1.0/24。
选择 “确定 ”关闭“ 创建虚拟网络 ”窗口并保存虚拟网络设置。
在“ 基本信息 ”选项卡上,接受其他设置的默认值,然后选择“ 下一步:前端”。
“前端”选项卡
在“前端”选项卡上,验证“IP 地址类型”是否设置为“公共”。
可以根据用例将前端 IP 配置为公共或专用。 在此示例中,你将选择一个公共前端 IP。注释
对于应用程序网关 v2 SKU,只能选择 公共 前端 IP 配置。 此 v2 SKU 当前未启用专用前端 IP 配置。
为公共 IP 地址选择“添加新”,然后输入 myAGPublicIPAddress 以获取公共 IP 地址名称,然后选择“确定”。
选择“下一步: 后端”。
“后端”选项卡
后端池用于将请求路由到为请求提供服务的后端服务器。 后端池可以由 NIC、虚拟机规模集、公共 IP、内部 IP、完全限定的域名(FQDN)和多租户后端(例如 Azure 应用服务)组成。 在此示例中,你将使用应用程序网关创建一个空后端池,然后将后端目标添加到后端池。
在“后端”选项卡上,选择“添加后端池”。
在打开 的“添加后端池 ”窗口中,输入以下值来创建空后端池:
- 名称:输入 myBackendPool 以获取后端池的名称。
- 添加没有目标的后端池:选择“是”以创建没有目标的后端池。 创建应用程序网关后,将添加后端目标。
在 “添加后端池 ”窗口中,选择“ 添加 ”以保存后端池配置并返回到“ 后端 ”选项卡。
在“后端”选项卡上,选择“下一步: 配置”。
配置选项卡
在 “配置 ”选项卡上,将连接使用路由规则创建的前端和后端池。
在“路由规则”列中选择“添加路由规则”。
在打开 的“添加路由规则 ”窗口中,输入 MyRoutingRule 作为 规则名称。
传递规则需要侦听器。 在“添加路由规则”窗口中的“侦听器”选项卡上,输入侦听器的以下值:
- 侦听器名称:输入 myListener 以获取侦听器的名称。
- 前端 IP:选择 “公共 ”,选择为前端创建的公共 IP。
- 协议:选择 HTTPS。
- 端口:验证是否为端口输入了 443。
在 HTTPS 设置下:
选择证书 - 选择 “上传证书”。
PFX 证书文件 - 浏览到并选择前面创建的 c:\appgwcert.pfx 文件。
证书名称 - 键入 mycert1 以获取证书的名称。
密码 - 键入用于创建证书的密码。
接受 侦听器 选项卡上其他设置的默认值,然后选择 “后端目标 ”选项卡以配置路由规则的其余部分。
在“后端目标”选项卡上,为后端目标选择 myBackendPool。
对于 HTTP 设置,请选择“ 添加新 ”以创建新的 HTTP 设置。 HTTP 设置将确定路由规则的行为。 在打开 的“添加 HTTP 设置 ”窗口中,输入 MYHTTPSetting 作为 HTTP 设置名称。 接受 “添加 HTTP 设置 ”窗口中其他设置的默认值,然后选择“ 添加 ”以返回到 “添加路由规则 ”窗口。
在 “添加路由规则 ”窗口中,选择“ 添加 ”以保存路由规则并返回到 “配置 ”选项卡。
选择 “下一步:标记 ”,然后选择 “下一步:查看 + 创建”。
查看与创建选项卡
查看“ 查看 + 创建 ”选项卡上的设置,然后选择“ 创建 ”以创建虚拟网络、公共 IP 地址和应用程序网关。 Azure 创建应用程序网关可能需要几分钟时间。 等待部署成功完成,然后再转到下一部分。
添加后端目标
在此示例中,你将使用虚拟机作为目标后端。 可以使用现有虚拟机或创建新虚拟机。 你将创建两个虚拟机,Azure 用作应用程序网关的后端服务器。
为此,你将:
- 创建两个新 VM myVM 和 myVM2,用作后端服务器。
- 在虚拟机上安装 IIS 以验证是否已成功创建应用程序网关。
- 将后端服务器添加到后端池。
创建虚拟机
在 Azure 门户菜单中,选择 “+ 创建资源>计算>Windows Server 2016 Datacenter”,或在门户搜索框中搜索 Windows Server ,然后选择 “Windows Server 2016 Datacenter”。
选择 创建。
应用程序网关可以将流量路由到其后端池中使用的任何类型的虚拟机。 在此示例中,你将使用 Windows Server 2016 Datacenter。
在“ 基本信息 ”选项卡中为以下虚拟机设置输入这些值:
- 资源组:为资源组名称选择 myResourceGroupAG 。
- 虚拟机名称:输入 myVM 以获取虚拟机的名称。
- 用户名:输入管理员用户名的名称。
- 密码:输入管理员帐户的密码。
接受其他默认值,然后选择“下一步: 磁盘”。
接受“磁盘”选项卡的默认值,然后选择“下一步: 网络”。
在“网络”选项卡上,验证是否已为虚拟网络选择了 myVNet,并将子网设置为 myBackendSubnet。 接受其他默认值,然后选择“ 下一步:管理”。
应用程序网关可以与虚拟网络外部的实例通信,但需要确保 IP 连接。
在 “管理 ”选项卡上,将 启动诊断 设置为 “禁用”。 接受其他默认值,然后选择“ 查看 + 创建”。
在“复查 + 创建”选项卡上复查设置,更正任何验证错误,然后选择“创建”。
等待部署完成,然后继续。
安装 IIS 进行测试
在此示例中,仅在虚拟机上安装 IIS,以验证 Azure 是否已成功创建应用程序网关。
打开 Azure PowerShell。 为此,请从 Azure 门户的顶部导航栏中选择 Cloud Shell ,然后从下拉列表中选择 PowerShell 。
更改环境的位置设置,然后运行以下命令在虚拟机上安装 IIS:
Set-AzVMExtension ` -ResourceGroupName myResourceGroupAG ` -ExtensionName IIS ` -VMName myVM ` -Publisher Microsoft.Compute ` -ExtensionType CustomScriptExtension ` -TypeHandlerVersion 1.4 ` -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' ` -Location <location>使用之前完成的步骤创建第二个虚拟机并安装 IIS。 将 myVM2 用于虚拟机名称和 Set-AzVMExtension cmdlet 的 VMName 设置。
将后端服务器添加到后端池
选择 “所有资源”,然后选择 “myAppGateway”。
从左侧菜单中选择 后端池 。
选择“myBackendPool”。
在 “目标类型”下,从下拉列表中选择 虚拟机 。
在 “目标”下,从下拉列表中选择 myVM 下的网络接口。
重复为 myVM2 添加网络接口。
选择“保存”。
等待部署完成之后再继续下一步。
测试应用程序网关
选择 “所有资源”,然后选择 myAGPublicIPAddress。
在浏览器的地址栏中,键入 https://< 应用程序网关 IP 地址>。
若要接受使用自签名证书的安全警告,请选择“ 详细信息 ”(或 Chrome 上的 “高级 ”),然后转到网页:
然后,安全的 IIS 网站将显示如下示例:
清理资源
不再需要时,请删除资源组及所有相关资源。 为此,请选择资源组,然后选择“ 删除资源组”。
后续步骤
在本教程中,你将:
- 创建了自签名证书
- 使用证书创建了应用程序网关
若要详细了解应用程序网关的 TLS 支持,请参阅 应用程序网关的端到端 TLS 和 应用程序网关 TLS 策略。
若要了解如何使用 Azure 门户创建和配置应用程序网关以托管多个网站,请转到下一教程。