教程:使用 Azure 应用程序网关作为负载均衡器将 WebLogic Server 群集迁移到 Azure
本教程指导你完成使用 Azure 应用程序网关部署 WebLogic Server (WLS)的过程。 其中介绍了创建 Key Vault、在 Key Vault 中存储 TLS/SSL 证书以及使用该证书进行 TLS/SSL 终止的具体步骤。 虽然所有这些元素在各自的领域中都有详细记录,但本教程演示了这些元素如何具体地结合起来,从而为 Azure 上的 WLS 创建一个简单而强大的负载均衡解决方案。
显示 WLS、应用网关和 Key Vault 之间的关系的
负载均衡是将 Oracle WebLogic Server 群集迁移到 Azure 的重要组成部分。 最简单的解决方案是使用对 Azure 应用程序网关的内置支持。 应用程序网关是 Azure 上 WebLogic 集群支持的一部分。 有关 Azure 上的 WebLogic 群集支持的概述,请参阅 什么是 Azure 上的 Oracle WebLogic Server?。
在本教程中,您将学习如何:
- 选择如何将 TLS/SSL 证书提供给应用网关
- 使用 Azure 应用程序网关将 WebLogic Server 部署到 Azure
- 验证 WLS 和应用网关的成功部署
先决条件
OpenSSL 在运行类似 UNIX 的命令行环境的计算机上。
虽然可能有其他工具可用于证书管理,但本教程使用 OpenSSL。 你可以在许多 GNU/Linux 发行版(如 Ubuntu)中找到捆绑的 OpenSSL。
一个有效的 Azure 订阅。
- 如果没有 Azure 订阅,创建免费帐户。
能够部署 Oracle WebLogic Server Azure 应用程序中列出的 WLS Azure 应用程序之一。
迁移上下文
以下是有关迁移本地 WLS 安装和 Azure 应用程序网关的一些注意事项。 虽然本教程的步骤是在 Azure 上的 WebLogic Server 群集前面建立负载均衡器的最简单方法,但还有其他许多方法可以执行此操作。 此列表显示需要考虑的一些其他事项。
- 如果有现有的负载均衡解决方案,请确保其功能由 Azure 应用程序网关满足或超过。 有关 Azure 应用程序网关与其他 Azure 负载均衡解决方案相比的功能摘要,请参阅 Azure中的负载均衡选项的
概述。 - 如果您的现有负载均衡解决方案能够提供安全保护,以抵御常见漏洞和攻击的威胁,那么应用程序网关也同样能为您提供保障。 应用程序网关的内置 Web 应用程序防火墙(WAF)实现 OWASP(Open Web Application Security Project)核心规则集。 有关应用程序网关中的 WAF 支持的详细信息,请参阅 Azure 应用程序网关功能的 Web 应用程序防火墙部分。
- 如果现有的负载均衡解决方案需要端到端 TLS/SSL 加密,则需要按照本指南中的步骤执行其他配置。 请参阅应用程序网关的 TLS 终止和端到端 TLS 概述的端到端 SSL 加密部分,以及 Oracle 关于在 Oracle Fusion 中间件中部署 SSL 的文档。
- 如果要针对云进行优化,本指南介绍如何从头开始使用 Azure 应用网关和 WLS。
- 有关将 WebLogic Server 迁移到 Azure 虚拟机的全面调查,请参阅 将 WebLogic Server 应用程序迁移到 Azure 虚拟机。
将包含应用程序网关的 WebLogic Server 部署到 Azure
本节将介绍如何将 Azure 应用程序网关自动预配为群集节点的负载均衡器来预配 WLS 群集。 应用程序网关将使用提供的 TLS/SSL 证书进行 TLS/SSL 终止。 有关应用程序网关的 TLS/SSL 终止的高级详细信息,请参阅应用程序网关的 TLS 终止和端到端 TLS 概述。
若要创建 WLS 群集和应用程序网关,请使用以下步骤。
首先,按照 Oracle 文档中所述,开始部署配置了 WebLogic Server 或动态群集的过程,但当到达 Azure 应用程序网关时,请返回此页面,如下图所示。
选择如何将 TLS/SSL 证书提供给应用网关
有多个选项可用于向应用程序网关提供 TLS/SSL 证书,但只能选择一个。 本部分介绍每个选项,以便为部署选择最佳选项。
选项 1:上传 TLS/SSL 证书
此选项适用于应用网关面临公共 Internet 的生产工作负荷,或者适用于需要 TLS/SSL 的 Intranet 工作负荷。 通过选择此选项,会自动预配 Azure Key Vault 以包含应用网关使用的 TLS/SSL 证书。
若要上传现有、已签名的 TLS/SSL 证书,请执行以下步骤:
- 按照证书颁发者中的步骤创建受密码保护的 TLS/SSL 证书,并指定证书的 DNS 名称。 关于选择通配符证书和单一名称证书的方法超出本文档讨论的范围。 两者都将在这里工作。
- 使用 PFX 文件格式从颁发者导出证书,并将其下载到本地计算机。 如果颁发者不支持导出为 PFX,则存在将许多证书格式转换为 PFX 格式的工具。
- 选择 Azure 应用程序网关部分。
- 在连接到 Azure 应用程序网关旁,选择是。
- 选择“上传 SSL 证书”。
- 选择字段 SSL 证书的文件浏览器图标。 导航到下载的 PFX 格式证书,并选择打开。
- 在 密码 输入框中输入证书的密码,然后在 确认密码 输入框中确认密码。
- 选择是否直接拒绝公共流量到托管服务器的节点。 选择是,将使托管服务器只能通过应用程序网关访问。
选择 DNS 配置
TLS/SSL 证书在证书颁发者颁发时与 DNS 域名相关联。 按照本部分中的步骤,使用证书的 DNS 名称配置部署。 可以使用已创建的 DNS 区域,或者允许部署为你创建一个。 选择 DNS 配置 部分以继续。
使用现有的 Azure DNS 区域
若要将现有 Azure DNS 区域与应用网关配合使用,请执行以下步骤:
- 在配置自定义 DNS 别名旁,选择是。
- 在使用现有的 Azure DNS 区域旁,选择是。
- 输入 DNS 区域名称旁边的 Azure DNS 区域的名称。
- 输入包含上一步中的 Azure DNS 区域的资源组。
允许部署创建新的 Azure DNS 区域
若要创建要与应用网关一起使用的 Azure DNS 区域,请执行以下步骤:
- 在配置自定义 DNS 别名旁,选择是。
- 在使用现有的 Azure DNS 区域旁,选择否。
- 输入 DNS 区域名称旁边的 Azure DNS 区域的名称。 将在与 WLS 相同的资源组中创建一个新的 DNS 区域。
最后,指定子 DNS 区域的名称。 部署将创建两个用于 WLS 的子 DNS 区域:一个用于管理控制台,一个用于应用网关。 例如,如果 DNS 区域名称 是 contoso.net,则可以输入 admin 和 app 作为值。 管理控制台将在 admin.contoso.net
提供,应用网关将在 app.contoso.net
提供。 请勿忘记按照使用 Azure DNS 委托 DNS 区域中所述,设置 DNS 委托。
以下部分详细介绍了向应用网关提供 TLS/SSL 证书的其他选项。 如果你对所选择的选项感到满意,可以跳到继续部署部分。
选项二:标识 Azure 密钥保管库
此选项适用于生产或非生产工作负荷,具体取决于提供的 TLS/SSL 证书。 如果不希望部署创建 Azure Key Vault,可以标识现有密钥保管库或自行创建一个。 此选项要求在继续之前将证书及其密码存储在 Azure Key Vault 中。 如果您有现有的密钥保管库并希望使用它,请跳到第 节:创建 TLS/SSL 证书。 否则,请继续阅读下一部分。
创建 Azure Key Vault
本部分介绍如何使用 Azure 门户创建 Azure Key Vault。
- 在 Azure 门户菜单中,或从 主页 页中,选择 创建资源。
- 在搜索框中,输入“密钥保管库”。
- 从结果列表中选择“密钥保管库”。
- 在“密钥保管库”部分,选择“创建”。
- 在 创建密钥保管库 部分中,提供以下信息:
- 订阅:请选择订阅选项。
- 在 资源组下,选择 创建新 并输入资源组名称。 记下密钥保管库名称。 稍后在部署 WLS 时需要用到它。
- 密钥保管库名称:必须输入唯一的名称。 记下密钥保管库名称。 稍后在部署 WLS 时需要用到它。
注意
资源组和密钥保管库名称可以使用相同的名称。
- 在 位置 下拉菜单中,选择一个位置。
- 将其他选项保留为默认值。
- 选择下一步: 访问策略。
- 在启用对以下对象的访问权限下,选择用于模板部署的 Azure 资源管理器。
- 选择“查看 + 创建”。
- 选择 创建。
创建密钥保管库相对简单,通常在不到两分钟内即可完成。 部署完成后,选择 转到资源 并继续转到下一部分。
创建 TLS/SSL 证书
本部分介绍如何以适合 Azure 上的 WebLogic Server 部署的应用程序网关使用的格式创建自签名 TLS/SSL 证书。 证书必须具有非空密码。 如果已有 .pfx 格式的有效非空密码 TLS/SSL 证书,则可以跳过本部分并转到下一部分。 如果现有的、有效的非空密码 TLS/SSL 证书不采用 .pfx 格式,请先将其转换为 .pfx 文件,然后再跳过到下一部分。 否则,请打开命令行界面并输入以下命令。
注意
本部分介绍如何在 Key Vault 中将证书存储为机密之前对证书进行 base 64 编码。 这是创建 WebLogic Server 和应用程序网关的基础 Azure 部署所必需的。
按照以下步骤创建并进行 Base64 编码的证书:
创建
RSA PRIVATE KEY
openssl genrsa 2048 > private.pem
创建相应的公钥。
openssl req -x509 -new -key private.pem -out public.pem
OpenSSL 工具提示时,必须回答几个问题。 这些值将包含在证书中。 本教程使用自签名证书,因此值无关紧要。 以下字面值是可以的。
- 对于 国家/地区名称,请输入两个字母代码。
- 对于省或自治区名称,请输入 WA。
- 对于组织名称,请输入 Contoso。 对于“组织单位名称”,请输入计费。
- 对于公用名,请输入 Contoso。
- 对于电子邮件地址,请输入 billing@contoso.com。
将证书导出为 .pfx 文件
openssl pkcs12 -export -in public.pem -inkey private.pem -out mycert.pfx
输入密码两次。 记下密码。 稍后在部署 WLS 时需要用到它。
Base 64 对 mycert.pfx 文件
进行编码 base64 mycert.pfx > mycert.txt
拥有 Key Vault 和具有非空密码的有效 TLS/SSL 证书后,可以将证书存储在 Key Vault 中。
将 TLS/SSL 证书存储在 Key Vault 中
本部分介绍如何将证书及其密码存储在前面部分创建的 Key Vault 中。
若要存储证书,请执行以下步骤:
- 在 Azure 门户中,将光标放在页面顶部的搜索栏中,然后键入在本教程前面创建的 Key Vault 的名称。
- 密钥保管库应显示在资源标题下。 选择该文件夹。
- 在“设置” 部分中,选择 机密。
- 选择 生成/导入。
- 在 “上传”选项下,保留默认值。
- 在名称下,输入
myCertSecretData
或任意你喜欢的名称。 - 在 值下,输入 mycert.txt 文件的内容。 值的长度以及换行符的存在对于文本字段来说不是问题。
- 将剩余值保留为默认值,并选择创建。
若要存储证书的密码,请执行以下步骤:
- 你将返回到 机密 页面。 选择 生成/导入。
- 在 “上传”选项下,保留默认值。
- 在 名称下,您可以输入
myCertSecretPassword
或其他您喜欢的名称。 - 在 值下,输入证书的密码。
- 将剩余值保留为默认值,然后选择 创建。
- 你将返回到机密页。
标识密钥保管库
现在,你已经拥有一个带有签名 TLS/SSL 证书的密钥保管库,其密码存储为机密,请返回到 Azure 应用程序网关 部分,以标识用于部署的密钥保管库。
- 在当前订阅中包含密钥保管库的
资源组名称下,输入包含您之前创建的密钥保管库的资源组名称。 - 在包含用于 SSL 终止证书机密的 Azure 密钥保管库的名称下,输入密钥保管库的名称。
- 在指定密钥保管库的机密名称(其值为 SSL 证书数据)下,输入
myCertSecretData
或之前输入的名称。 - 在指定密钥保管库的机密名称(其值为 SSL 证书的密码)下,输入
myCertSecretData
或之前输入的名称。 - 选择“查看 + 创建”。
- 选择 创建。 该过程将验证是否可以从 Key Vault 获取证书,并确保证书的密码与存储在 Key Vault 中的密码值一致。 如果此验证步骤失败,请查看 Key Vault 的属性,确保正确输入证书,并确保正确输入密码。
- 看到验证通过后,选择创建。
这将开始创建 WLS 群集及其前端应用程序网关的过程,这可能需要大约 15 分钟。 部署完成后,选择 转到资源组。 从资源组中的资源列表中,选择 myAppGateway。
下一部分详细介绍了向应用网关提供 TLS/SSL 证书的最后一个选项。 如果你对所选择的选项感到满意,可以跳到继续部署部分。
选项 3:生成自签名证书
此选项仅适用于测试和开发部署。 使用此选项,会自动创建 Azure Key Vault 和自签名证书,并将证书提供给应用网关。
若要请求部署执行这些操作,请使用以下步骤:
- 在 Azure 应用程序网关 部分中,选择 生成自签名证书。
- 选择用户分配的托管标识。 这是允许部署创建 Azure Key Vault 和证书所必需的。
- 如果还没有用户分配的托管标识,请选择 添加 以开始创建一个托管标识。
- 若要创建用户分配的托管标识,请按照使用 Azure 门户创建、列出、删除用户分配的托管标识或为其分配角色的创建用户分配的托管标识部分中的步骤操作。 选择用户分配的托管标识后,请确保选中用户分配的托管标识旁边的复选框。
继续部署
现在,你可以继续进行 Oracle 文档中所述的 WLS 部署的其他方面。
验证 WLS 和应用网关的成功部署
本部分介绍一种技术,用于快速验证 WLS 群集和应用程序网关的成功部署。
如果在上一部分末尾选择了转到资源组,再选择 myAppGateway,你将看到应用程序网关的概述页面。 如果没有,可以在 Azure 门户顶部的文本框中键入 myAppGateway
,然后选择出现的正确页面来找到此页面。 请务必选择在为 WLS 群集创建的资源组内的那个。 然后,完成以下步骤。
- 在 myAppGateway概述页的左窗格中,向下滚动到 监控 部分,然后选择 后端运行状况。
- 加载消息消失后,你应该会在屏幕中央看到一个表,显示群集中的节点已经配置为后端池中的节点。
- 请验证每个节点的状态是否显示为正常。
清理资源
如果不打算继续使用 WLS 群集,请执行以下步骤删除 Key Vault 和 WLS 群集:
- 如前一节所示,访问 myAppGateway 的概述页。
- 在页面顶部的文本 资源组下,选择资源组。
- 选择 删除资源组。
- 输入焦点将设置为标记为键入资源组名称的字段。 按请求键入资源组名称。
- 这将导致删除按钮变为可用。 选择 删除 按钮。 此操作需要一些时间,但在删除过程进行时,可以继续进行下一步。
- 按照第一个步骤找到 Key Vault。将 TLS/SSL 证书存储在 Key Vault。
- 选择 删除。
- 在显示的窗格中选择 ,删除。
后续步骤
继续探索在 Azure 上运行 WLS 的选项。