

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

# 使用 keytool 创建新 AWS CloudHSM 密钥
<a name="create_key_keytool_5"></a>

你可以使用 keytool 生成 RSA、AES 和 AWS CloudHSM JCE SDK 支持的密钥 DESede 类型。

**重要**  
通过 keytool 生成的密钥在软件中生成，然后 AWS CloudHSM 作为可提取的永久密钥导入到。

我们强烈建议在 keytool 之外生成不可导出的密钥，然后将相应的证书导入密钥库。如果您通过 keytool 和 Jarsigner 使用可提取的 RSA 或 EC 密钥，则提供程序会从中导出密钥， AWS CloudHSM 然后在本地使用该密钥进行签名操作。

如果您有多个客户端实例连接到您的 AWS CloudHSM 集群，请注意，在一个客户端实例的密钥库中导入证书不会自动使证书在其他客户端实例上可用。要在每个客户端实例上注册密钥和关联证书，您需要运行 Java 应用程序，如 [使用 keyt AWS CloudHSM ool 生成 CSR](generate_csr_using_keytool_5.md) 中所述。或者，您可以在一个客户端上进行必要的更改，并将生成的密钥库文件复制到其他每个客户端实例。

**示例 1：**生成对称 AES-256 密钥，并将其保存在工作目录中名为“example\_keystore.store”的密钥库文件中。替换{{<secret label>}}为独一无二的标签。

------
#### [ Linux ]

```
$ keytool -genseckey -alias {{<secret label>}} -keyalg aes \
	-keysize 256 -keystore example_keystore.store \
	-storetype CloudHSM -J-classpath '-J/opt/cloudhsm/java/*' \
```

------
#### [ Windows ]

```
PS C:\> keytool -genseckey -alias {{<secret label>}} -keyalg aes `
	-keysize 256 -keystore example_keystore.store `
	-storetype CloudHSM -J-classpath '-J"C:\Program Files\Amazon\CloudHSM\java\*"'
```

------

**示例 2：**生成 RSA 2048 密钥对，并将其保存在工作目录中名为“example\_keystore.store”的密钥库文件中。替换{{<RSA key pair label>}}为独一无二的标签。

------
#### [ Linux ]

```
$ keytool -genkeypair -alias {{<RSA key pair label>}} \
	-keyalg rsa -keysize 2048 \
	-sigalg sha512withrsa \
	-keystore example_keystore.store \
	-storetype CLOUDHSM \
	-J-classpath '-J/opt/cloudhsm/java/*'
```

------
#### [ Windows ]

```
PS C:\> keytool -genkeypair -alias {{<RSA key pair label>}} `
	-keyalg rsa -keysize 2048 `
	-sigalg sha512withrsa `
	-keystore example_keystore.store `
	-storetype CLOUDHSM `
	-J-classpath '-J"C:\Program Files\Amazon\CloudHSM\java\*"'
```

------

您可以在 Java 库中找到[支持的签名算法](java-lib-supported_5.md#java-sign-verify_5)列表。