

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

# 将密 AWS CloudHSM 钥与证书关联
<a name="ksp-library-associate-key-certificate"></a>

在将 AWS CloudHSM 密钥用于第三方工具（例如 Microsoft 的工具）之前 [SignTool](https://docs.microsoft.com/en-us/windows/win32/seccrypto/signtool)，必须将密钥的元数据导入本地证书存储区，并将元数据与证书相关联。要导入密钥的元数据，请使用包含在 CloudHSM 3.0 及更高版本中的 import\_key.exe 实用程序。以下步骤提供其他信息和示例输出。

## 步骤 1：导入证书
<a name="import-cert"></a>

在 Windows 上，您应该能够双击证书将其导入到本地证书存储。

但是，如果双击不起作用，请使用 [Microsoft Certreq 工具](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn296456%28v%3dws.11%29)将证书导入证书管理器中。例如：

```
certreq -accept {{<certificatename>}}
```

如果此操作失败，并且您收到错误 `Key not found`，请继续执行步骤 2。如果证书显示在密钥库中，则表示您已完成任务，无需进一步操作。

## 步骤 2：收集证书识别信息
<a name="cert-identifier"></a>

如果上一步未成功，则需要将您的私有密钥与证书关联。但是，您必须先找到证书的唯一容器名称和序列号，然后才能创建关联。使用实用程序（例如 **certutil**）显示所需的证书信息。**certutil** 的以下示例输出显示了容器名称和序列号。

```
================ Certificate 1 ================ Serial Number:
			72000000047f7f7a9d41851b4e000000000004Issuer: CN=Enterprise-CANotBefore: 10/8/2019 11:50
			AM NotAfter: 11/8/2020 12:00 PMSubject: CN=www.example.com, OU=Certificate Management,
			O=Information Technology, L=Seattle, S=Washington, C=USNon-root CertificateCert
			Hash(sha1): 7f d8 5c 00 27 bf 37 74 3d 71 5b 54 4e c0 94 20 45 75 bc 65No key provider
			information Simple container name: CertReq-39c04db0-6aa9-4310-93db-db0d9669f42c Unique
			container name: CertReq-39c04db0-6aa9-4310-93db-db0d9669f42c
```



## 步骤 3：将 AWS CloudHSM 私钥与证书关联
<a name="associate-key-certificate"></a>

要将密钥与证书关联，请首先确保[启动 AWS CloudHSM 客户端守护程序](key_mgmt_util-setup.md#key_mgmt_util-start-cloudhsm-client)。然后，使用 import\_key.exe（包含在 CloudHSM 版本 3.0 及更高版本中）将私有密钥与证书关联。指定证书时，请使用其简单容器名称。以下示例显示了命令和响应。此操作仅复制密钥的元数据；密钥保留在 HSM 上。

```
$> import_key.exe –RSA CertReq-39c04db0-6aa9-4310-93db-db0d9669f42c

Successfully opened Microsoft Software Key Storage Provider : 0NCryptOpenKey failed : 80090016
```

## 步骤 4：更新证书存储
<a name="update-certificate-store"></a>

请确保 AWS CloudHSM 客户端守护程序仍在运行。然后，使用 **certutil** 动词 **-repairstore** 更新证书序列号。以下示例显示了命令和输出。有关 [**-repairstore** 动词](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)?redirectedfrom=MSDN#-repairstore)的信息，请参阅 Microsoft 文档。

```
C:\Program Files\Amazon\CloudHSM>certutil -f -csp "Cavium Key Storage Provider"-repairstore my "72000000047f7f7a9d41851b4e000000000004"
my "Personal"
================ Certificate 1 ================
Serial Number: 72000000047f7f7a9d41851b4e000000000004
Issuer: CN=Enterprise-CA
NotBefore: 10/8/2019 11:50 AM
NotAfter: 11/8/2020 12:00 PM
Subject: CN=www.example.com, OU=Certificate Management, O=Information Technology, L=Seattle, S=Washington, C=US
Non-root CertificateCert Hash(sha1): 7f d8 5c 00 27 bf 37 74 3d 71 5b 54 4e c0 94 20 45 75 bc 65       
SDK Version: 3.0 
Key Container = CertReq-39c04db0-6aa9-4310-93db-db0d9669f42c 
Provider = "Cavium Key Storage Provider"
Private key is NOT exportableEncryption test passedCertUtil: -repairstore command completed successfully.
```

更新证书序列号后，您可以在 Windows 上的任何第三方签名工具中使用此证书和相应的 AWS CloudHSM 私钥。