使用微软清单生成和编辑工具 (Mage.exe) 对文件 AWS CloudHSM 进行签名 - AWS CloudHSM

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

使用微软清单生成和编辑工具 (Mage.exe) 对文件 AWS CloudHSM 进行签名

注意

AWS CloudHSM 仅支持适用于.NET Framework 4.8.1 及更高版本的 Windows SDK 中包含的 64 位 Mage 工具。

以下主题概述了如何将 Mage.exe 与配合使用 AWS CloudHSM。

步骤 1:设置先决条件

要将 Microsoft Mage.exe 与配合使用 AWS CloudHSM,你需要满足以下条件:

  • 运行 Windows 操作系统的亚马逊 EC2 实例

  • 一个证书颁发机构(CA),自我维护或来自第三方提供商

  • 与您的 EC2 实例位于同一个虚拟私有云 (VPC) 中的活动 AWS CloudHSM 集群,且至少有一个 HSM

  • 在 AWS CloudHSM 集群中拥有和管理密钥的加密用户 (CU)

  • 未签名文件或可执行文件

  • Microsoft Windows 软件开发工具包(SDK)

设置 AWS CloudHSM 与 Mage.exe 一起使用的先决条件
  1. 按照本指南入门部分中的说明启动 Windows EC2 实例和 AWS CloudHSM 集群。

  2. 如果你想托管自己的 Windows Server CA,请使用完成将 Windows 服务器配置为证书颁发机构中的步骤 1 和步骤 2 AWS CloudHSM。否则,请使用您的公开可信的第三方 CA。

  3. 在你的 Windows EC2 实例上下载并安装适用于.NET Framework 4.8.1 或更高版本的微软 Windows SDK:

    mage.exe 可执行文件是 Windows SDK 工具的一部分。默认安装位置是:

    C:\Program Files (x86)\Windows Kits\<SDK version>\bin\<version number>\x64\Mage.exe

完成这些步骤后,你可以使用 Microsoft Windows SDK、你的 AWS CloudHSM 集群和你的 CA 来创建签名证书

步骤 2:创建签名请求

现在,您已经在 EC2 实例上安装了 Windows 软件开发工具包,您可以使用它来生成证书签名请求 (CSR)。CSR 是未签名的证书,您将其提交给您的 CA 进行签名。在此示例中,我们使用 Windows SDK 中包含的 certreq 可执行文件来生成 CSR。

使用 certreq 可执行文件生成 CSR
  1. 连接到你的 Windows EC2 实例。有关更多信息,请参阅 Amazon EC2 用户指南中的 Connect 到您的实例

  2. 使用以下内容创建名为 request.inf 的文件。将 Subject 信息替换为贵组织的详细信息:

    [Version] Signature= $Windows NT$ [NewRequest] Subject = "C=<Country>,CN=<www.website.com>,O=<Organization>,OU=<Organizational-Unit>,L=<City>,S=<State>" RequestType=PKCS10 HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = "CloudHSM Key Storage Provider" KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE" MachineKeySet = True Exportable = False

    有关每个参数的说明,请参阅 Microsoft 的文档

  3. 运行 certreq.exe 生成 CSR:

    certreq.exe -new request.inf request.csr

    此命令在您的 AWS CloudHSM 集群上生成新的密钥对,并使用私钥创建 CSR。

  4. 将 CSR 提交给 CA。如果您使用的是 Windows Server CA,请执行以下步骤:

    1. 打开 CA 工具:

      certsrv.msc
    2. 在新窗口中,右键单击 CA 服务器的名称。选择所有任务,然后选择提交新请求

    3. 导航到 request.csr 的位置,然后选择打开

    4. 展开 Server CA 菜单,导航到待处理请求文件夹。右键单击您刚刚创建的请求,选择所有任务,然后选择颁发

    5. 导航到已颁发的证书文件夹。

    6. 选择打开以查看证书,然后选择详细信息选项卡。

    7. 选择复制到文件以启动证书导出向导。将经 DER 编码的 X.509 文件作为 signedCertificate.cer 保存到安全位置。

    8. 退出 CA 工具并使用以下命令,将证书文件移动到 Windows 中的个人证书存储。

      certreq.exe -accept signedCertificate.cer

现在,可以使用导入的证书对文件进行签名

步骤 3:对文件进行签名

现在,您已拥有 Mage.exe 和导入的证书,可以对文件进行签名了。您需要知道证书的 SHA-1 哈希或指纹。指纹可确保 Mage.exe 仅使用经过 AWS CloudHSM验证的证书。在此示例中,我们使用 PowerShell 获取证书的哈希值。

获取证书的指纹并使用它来对文件进行签名
  1. 导航到含有 mage.exe 的目录。默认位置是:

    C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools\x64
  2. 要使用 Mage.exe 创建示例应用程序文件,请运行以下命令:

    mage.exe -New Application -ToFile C:\Users\Administrator\Desktop\sample.application
  3. 以管理员 PowerShell 身份打开并运行以下命令:

    Get-ChildItem -path cert:\LocalMachine\My

    从输出中复制 ThumbprintKey ContainerProvider 值。

    证书的哈希将在输出中显示为指纹、密钥容器和提供商
  4. 通过运行以下命令对文件进行签名:

    mage.exe -Sign -CertHash <thumbprint> -KeyContainer <keycontainer> -CryptoProvider <CloudHSM Key Storage Provider/Cavium Key Storage Provider> C:\Users\Administrator\Desktop\<sample.application>

    如果命令成功,则 PowerShell 返回成功消息。

  5. 要验证文件上的签名,请使用以下命令:

    mage.exe -Verify -CryptoProvider <CloudHSM Key Storage Provider/Cavium Key Storage Provider> C:\Users\Administrator\Desktop\<sample.application>