使用 ACM 将 Windows SSL 凭证迁移到应用程序负载均衡器 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 ACM 将 Windows SSL 凭证迁移到应用程序负载均衡器

由 Chandra Sekhar Yaratha (AWS) 和 Igor Kovalchuk (AWS) 编写

环境:生产

来源:Windows web 应用程序

目标: AWS 上的应用程序负载均衡器

R 类型:更换平台

工作负载:Microsoft

技术:迁移;管理和治理;Web 和移动应用程序

Amazon Web Services:弹性负载均衡(ELB)、AWS Certificate Manager (ACM)

Summary

该模式为使用 AWS Certificate Manager (ACM) 从托管在本地服务器上的网站或 Microsoft Internet Information Services (IIS) 上的 Amazon Elastic Compute Cloud (Amazon EC2) 实例迁移现有 Secure Sockets Layer (SSL) 凭证提供了指导。然后,SSL 凭证可与 AWS 上的弹性负载均衡一起使用。

SSL 可保护您的数据,确认您的身份,提供更好的搜索引擎排名,帮助满足支付卡行业数据安全标准 (PCI DSS) 的要求,并提高客户信任度。管理这些工作负载的开发人员和 IT 团队希望他们的 Web 应用程序和基础设施(包括 IIS 服务器和 Windows Service 器)始终符合其基准策略。

此模式包括手动从 Microsoft IIS 导出现有 SSL 凭证,将其从 Personal Information Exchange (PFX) 格式转换为 ACM 支持的 Private Enhanced Mail (PEM) 格式,然后将其导入到您的 Amazon Web Services account 中的 ACM 中。它还描述了如何为您的应用程序创建应用程序负载均衡器,以及如何将应用程序负载均衡器配置为使用您导入的凭证。然后,在应用程序负载均衡器终止 HTTPS 连接,您无需在 Web 服务器上增加额外的配置开销。有关更多信息,请参阅为您的应用程序负载均衡器创建 HTTPS 侦听器

Windows 服务器使用 .pfx 或 .p12 文件包含公钥文件(SSL 凭证)及其唯一私钥文件。凭证颁发机构 (CA) 为您提供您的公钥文件。您可使用服务器生成创建凭证签名请求 (CSR) 的关联私钥文件。

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account

  • AWS 上的虚拟私有云(VPC),在您的目标使用的每个可用区中至少有一个私有子网和一个公有子网

  • 在 Windows Server 2012 或更高版本上运行的 IIS 版本 8.0 或更高版本

  • IIS 上运行的 Web 应用程序

  • IIS 服务器的管理员访问权限

架构

源技术堆栈

  • 使用 SSL 实施 IIS Web 服务器,确保数据在加密连接 (HTTPS) 中安全传输

源架构

使用 ACM 将 Windows SSL 凭证迁移至应用程序负载均衡器的源架构

目标技术堆栈

  • Amazon Web Services account 中的 ACM 凭证

  • 配置为使用导入凭证的应用程序负载均衡器

  • 私有子网中的 Windows 服务器实例

目标架构

使用 ACM 将 Windows SSL 凭证迁移到应用程序负载均衡器的目标架构

工具

  • AWS Certificate Manager(ACM)可帮助您创建、存储和续订公有及私有 SSL/TLS X.509 证书和密钥,这些证书和密钥可保护 AWS 网站和应用程序。

  • 弹性负载均衡(ELB)将传入的应用程序或网络流量分发到多个目标。例如,您可以将流量分发到一个或多个可用区中的 EC2实例、容器以及 IP 地址。

最佳实践

  • 将 HTTP 流量强制重定向到 HTTPS。

  • 为应用程序负载均衡器适当配置安全组,仅允许入站流量进入特定端口。

  • 在不同的可用区启动 EC2 实例以确保高可用性。

  • 将应用程序域配置为指向应用程序负载均衡器的 DNS 名称,而不是其 IP 地址。

  • 确保应用程序负载均衡器已配置 application-layer 运行状况检查

  • 配置运行状况检查的阈值。

  • 使用 Amazon 监控 A CloudWatch pplication Load Balancer。

操作说明

任务描述所需技能

从 Windows 服务器导出.pfx 文件。

要从 Windows 服务器的本地 IIS 管理器中将 SSL 凭证导出为 .pfx 文件,请执行以下操作:

  1. 选择 开始管理Internet Information Services (IIS) Manager

  2. 选择服务器名称,然后在安全下双击服务器凭证

  3. 选择要导出的凭证,然后选择导出

  4. 导出凭证框,为您的 .pfx 文件选择位置、路径和名称。

  5. 为您的 .pfx 文件指定并确认密码。

    注意:安装 .pfx 文件时需要此密码。

  6. 选择 OK(确定)。

现在,您的 .pfx 文件应保存至指定的位置和路径。

系统管理员
任务描述所需技能

下载和安装 OpenSSL 工具包。

  1. 从 Shining Light Productions 网站下载和安装 Win32/Win64 OpenSSL

  2. 将 OpenSSL 二进制文件的位置添加至您的系统 PATH 变量中,以便二进制文件可供命令行使用。

系统管理员

将 PFX 编码的凭证转换为 PEM 格式。

以下步骤将 PFX 编码的签名凭证文件转换为 PEM 格式的三个文件:

  • cert-file.pem包含资源的 SSL/TLS 凭证。

  • privatekey.pem包含凭证的私钥,没有密码保护。

  • ca-chain.pem包含 CA 的根凭证。

要转换 PFX 编码的凭证,请执行以下操作:

  1. 运行 Windows PowerShell。

  2. 使用以下命令从 PFX 文件中提取凭证的私钥。根据系统提示输入凭证密码。

    openssl pkcs12 -in <filename>.pfx -nocerts -out withpw-privatekey.pem

    该命令生成名为 privatekey.pem 的 PEM 编码的私钥文件。在提示时,输入密码以保护私钥文件。

  3. 运行以下命令以移除密码。显示提示时,请提供您在步骤 2 中创建的密码。

    openssl rsa -in withpw-privatekey.pem -out privatekey.pem

    如果命令成功,该命令会显示 “正在写入 RSA 密钥” 消息。

  4. 使用以下命令将凭证从 PFX 文件传输至 PEM 文件。

    openssl pkcs12 -in <file_name>.pfx -clcerts -nokeys -out cert-file.pem

    这会创建名为 cert-file.pem 的 PEM 编码凭证文件。如果命令成功,该命令将显示消息“MAC 验证正常”。

  5. 通过 PFX 文件创建 CA 链文件。下面的命令创建名为 ca-chain.pem 的 CA 链文件。

    openssl pkcs12 -in <file_name>.pfx -cacerts -nokeys -chain -out ca-chain.pem

    如果命令成功,该命令将显示消息“MAC 验证正常”。

系统管理员
任务描述所需技能

准备导入凭证。

ACM 控制台,选择导入凭证

云管理员

提供凭证正文。

对于凭证正文,粘贴要导入的 PEM 编码凭证。

有关此操作说明中此任务和其他任务的命令和步骤的更多信息,请参阅 ACM 文档中的导入凭证

云管理员

提供凭证私钥。

对于凭证私钥,粘贴与凭证的公有密钥匹配的 PEM 编码的未加密私有密钥。

云管理员

提供凭证链。

对于凭证链,粘贴 PEM 编码的凭证链,该凭证链存储在 CertificateChain.pem 文件中。

云管理员

导入凭证。

选择查看和导入。确认有关您的凭证的信息正确无误,然后选择导入

云管理员
任务描述所需技能

创建和配置负载均衡器与侦听器。

按照弹性负载均衡文档中的说明,配置目标组、注册目标以及创建应用程序负载均衡器和侦听器。为端口 443 添加第二个侦听器 (HTTPS)。

云管理员

故障排除

问题解决方案

即使你将 OpenSSL 命令添加到系统路径中,Windows 也 PowerShell 无法识别该命令。

检查$env:path,以确保它包含 OpenSSL 二进制文件的位置。

如果没有,请在中运行以下命令 PowerShell:

$env:path = $env:path + ";C:\OpenSSL-Win64\bin"

相关资源

将凭证导入到 ACM

创建应用程序负载均衡器