

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

# 为 AWS CloudHSM 客户端 SDK 5 安装 JCE 提供程序
<a name="java-library-install_5"></a>

 AWS CloudHSM 客户端 SDK 5 的 JCE 提供程序与 OpenJDK 8、OpenJDK 11、OpenJDK 17、OpenJDK 21 和 OpenJDK 25 兼容。您可以从 [OpenJDK 网站](https://openjdk.java.net/)下载两者。

使用以下部分来安装提供程序并向提供程序提供凭证。

**注意**  
要使用客户端软件开发工具包 5 运行单个 HSM 集群，必须首先通过将 `disable_key_availability_check` 设置为 `True`，以管理客户端密钥持久性设置。有关更多信息，请参阅[密钥同步](manage-key-sync.md)和[客户端软件开发工具包 5 配置工具](configure-sdk-5.md)。

**Topics**
+ [步骤 1：安装 JCE 提供程序](#install-java-library_5)
+ [步骤 2：向 JCE 提供程序提供凭证](#java-library-credentials_5)

## 步骤 1：安装 JCE 提供程序
<a name="install-java-library_5"></a>

1. 使用以下命令下载和安装 JCE 提供程序。

------
#### [ Amazon Linux 2023 ]

   在 x86\$164 架构上安装适用于 Amazon Linux 2023 的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-jce-latest.amzn2023.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.amzn2023.x86_64.rpm
   ```

   在 ARM64 架构上安装适用于亚马逊 Linux 2023 的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-jce-latest.amzn2023.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.amzn2023.aarch64.rpm
   ```

------
#### [ Amazon Linux 2 ]

   在 x86\$164 架构上安装适用于 Amazon Linux 2 的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-jce-latest.el7.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.el7.x86_64.rpm
   ```

   在 ARM64 架构上安装适用于 Amazon Linux 2 的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-jce-latest.el7.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.el7.aarch64.rpm
   ```

------
#### [ RHEL 10 (10.0\$1) ]

   在 x86\$164 架构上安装 RHEL 10 的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL10/cloudhsm-jce-latest.el10.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.el10.x86_64.rpm
   ```

   在架构上安装 RHEL 10 的 JCE 提供程序： ARM64 

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL10/cloudhsm-jce-latest.el10.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.el10.aarch64.rpm
   ```

------
#### [ RHEL 9 (9.2\$1) ]

   在 x86\$164 架构上安装适用于 RHEL 9（9.2\$1）的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL9/cloudhsm-jce-latest.el9.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.el9.x86_64.rpm
   ```

   在架构上安装 RHEL 9 (9.2\$1) 的 JCE 提供程序： ARM64 

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL9/cloudhsm-jce-latest.el9.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.el9.aarch64.rpm
   ```

------
#### [ RHEL 8 (8.3\$1) ]

   在 x86\$164 架构上安装适用于 RHEL 8 的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-jce-latest.el8.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.el8.x86_64.rpm
   ```

   在架构上安装 RHEL 8 的 JCE 提供程序： ARM64 

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-jce-latest.el8.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-jce-latest.el8.aarch64.rpm
   ```

------
#### [ Ubuntu 24.04 LTS ]

   在 x86\$164 架构上安装适用于 Ubuntu 24.04 LTS 的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Noble/cloudhsm-jce_latest_u24.04_amd64.deb
   ```

   ```
   $ sudo apt install ./cloudhsm-jce_latest_u24.04_amd64.deb
   ```

   在架构上安装 Ubuntu 24.04 LTS 的 JCE 提供程序： ARM64 

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Noble/cloudhsm-jce_latest_u24.04_arm64.deb
   ```

   ```
   $ sudo apt install ./cloudhsm-jce_latest_u24.04_arm64.deb
   ```

------
#### [ Ubuntu 22.04 LTS ]

   在 x86\$164 架构上安装适用于 Ubuntu 22.04 LTS 的 JCE 提供程序：

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Jammy/cloudhsm-jce_latest_u22.04_amd64.deb
   ```

   ```
   $ sudo apt install ./cloudhsm-jce_latest_u22.04_amd64.deb
   ```

   在架构上安装 Ubuntu 22.04 LTS 的 JCE 提供程序： ARM64 

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Jammy/cloudhsm-jce_latest_u22.04_arm64.deb
   ```

   ```
   $ sudo apt install ./cloudhsm-jce_latest_u22.04_arm64.deb
   ```

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

   在 x86\$164 架构上安装适用于 Windows 服务器的 JCE 提供程序，以管理员 PowerShell 身份打开并运行以下命令：

   ```
   PS C:\> wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMJCE-latest.msi -Outfile C:\AWSCloudHSMJCE-latest.msi
   ```

   ```
   PS C:\> Start-Process msiexec.exe -ArgumentList '/i C:\AWSCloudHSMJCE-latest.msi /quiet /norestart /log C:\client-install.txt' -Wait
   ```

------

1. 引导客户端软件开发工具包 5。有关引导程序的更多信息，请参阅 [引导客户端软件开发工具包](cluster-connect.md#connect-how-to)。

1. 找到以下 JCE 提供程序文件：

------
#### [ Linux ]
   + `/opt/cloudhsm/java/cloudhsm-<version>.jar`
   + `/opt/cloudhsm/bin/configure-jce`
   + `/opt/cloudhsm/bin/jce-info`

------
#### [ Windows ]
   + `C:\Program Files\Amazon\CloudHSM\java\cloudhsm-<version>.jar>`
   + `C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe`
   + `C:\Program Files\Amazon\CloudHSM\bin\jce_info.exe`

------

## 步骤 2：向 JCE 提供程序提供凭证
<a name="java-library-credentials_5"></a>

在您的 Java 应用程序可以使用 HSM 之前，HSM 需要先对应用程序进行身份验证。 HSMs 使用显式登录或隐式登录方法进行身份验证。

**显式登录**：此方法可让您直接在应用程序中提供 AWS CloudHSM 凭证。它使用 [https://docs.oracle.com/javase/8/docs/api/java/security/AuthProvider.html](https://docs.oracle.com/javase/8/docs/api/java/security/AuthProvider.html) 中的方法，以 PIN 模式传入 CU 用户名和密码。有关更多信息，请参阅[登录 HSM](https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/sdk5/src/main/java/com/amazonaws/cloudhsm/examples/LoginRunner.java) 代码示例。

**隐式登录**：此方法可让您在新属性文件或系统属性中设置 AWS CloudHSM 凭证，或将该凭证设置为环境变量。
+ **系统属性**：在运行应用程序时通过系统属性设置凭证。以下示例演示了可执行此操作的两种不同方式：

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

  ```
  $ java -DHSM_USER=<HSM user name> -DHSM_PASSWORD=<password>
  ```

  ```
  System.setProperty("HSM_USER","<HSM user name>");
  System.setProperty("HSM_PASSWORD","<password>");
  ```

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

  ```
  PS C:\> java -DHSM_USER=<HSM user name> -DHSM_PASSWORD=<password>
  ```

  ```
  System.setProperty("HSM_USER","<HSM user name>");
  System.setProperty("HSM_PASSWORD","<password>");
  ```

------
+ **环境变量**：将凭证设置为环境变量。
**注意**  
设置环境变量时，必须对外壳程序可能解释的任何特殊字符进行转义。

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

  ```
  $ export HSM_USER=<HSM user name>
  $ export HSM_PASSWORD=<password>
  ```

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

  ```
  PS C:\> $Env:HSM_USER="<HSM user name>"
  PS C:\> $Env:HSM_PASSWORD="<password>"
  ```

------

如果应用程序未提供凭证，或者在 HSM 验证会话前尝试执行操作，则凭证可能不可用。在这些情况下，适用于 Java 的 CloudHSM 软件库按以下顺序搜索凭证：

1. 系统属性

1. 环境变量