使用将 Windows SSL 证书迁移到 Application Load Balancer ACM - AWS Prescriptive Guidance

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

使用将 Windows SSL 证书迁移到 Application Load Balancer ACM

由 Chandra Sekhar Yaratha (AWS) 和 Igor Kovalchuk () 创作 AWS

环境:生产

来源:Windows web 应用程序

目标:打开 Applic ation Load Balancer AWS

R 类型:更换平台

工作负载:Microsoft

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

AWS服务:Elastic Load Balancing (ELB);AWSCertifice Manager (ACM)

Summary

该模式为使用 AWS Certificate Manager (ACM) 从托管在本地服务器上的网站或微软互联网信息服务 (SSL) 上的亚马逊弹性计算云 (AmazonEC2) 实例 () 迁移现有安全套接字层 (IIS) 证书提供了指导。然后,这些SSL证书可以在开启 Elastic Load Balancing 的情况下使用AWS。

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

此模式包括手动从 Microsoft 导出现有SSL证书IIS,将其从 “个人信息交换” (PEM) 格式转换为ACM支持的私人增强邮件 () 格式,然后将其导入到您的AWS帐户ACM中。PFX它还描述了如何为您的应用程序创建应用程序负载均衡器,以及如何将应用程序负载均衡器配置为使用您导入的凭证。HTTPS然后,连接将在 Application Load Balancer 上终止,您无需在 Web 服务器上增加额外的配置开销。有关更多信息,请参阅为您的 Application HTTPS Load Balancer 创建侦听器

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

先决条件和限制

先决条件

  • 一个活跃的AWS账户

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

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

  • 在上运行的 Web 应用程序 IIS

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

架构

源技术堆栈

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

源架构

用于将 Windows SSL 证书迁移到 Application Load Balancer 的源架构 ACM

目标技术堆栈

  • ACM您AWS账户中的证书

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

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

目标架构

用于将 Windows SSL 证书迁移到 Application Load Balancer 的目标架构 ACM

工具

  • AWSCertifice Manager (ACM) 可帮助您创建、存储和续订保护您的AWS网站和应用程序的公共和私有SSL/TLSX.509 证书和密钥。

  • Elastic Load Balancing (ELB) 将传入的应用程序或网络流量分布到多个目标。例如,您可以在一个或多个可用区域中的EC2实例、容器和 IP 地址之间分配流量。

最佳实践

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

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

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

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

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

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

  • 使用 Amazon CloudWatch 监控应用程序负载均衡器。

操作说明

任务描述所需技能

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

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

  1. 选择开始管理Internet 信息服务 (IIS) 管理器

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

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

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

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

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

  6. 选择 OK(确定)。

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

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

下载并安装 Open SSL 工具包。

  1. SSL从 Sh ining Light Productions 网站下载并安装 Win32/Win64 Op e

  2. 将 Open SSL 二进制文件的位置添加到您的系统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

    该命令生成一个名为的 PEM-编码私钥文件。privatekey.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

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

  5. 根据该文件创建 CA 链PFX文件。下面的命令创建名为 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)。

云管理员

故障排除

问题解决方案

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

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

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

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

相关资源

将证书导入 ACM

创建应用程序负载均衡器