

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用用戶端 SDK 3 搭配 Jarsigner 使用 AWS CloudHSM 金鑰存放區
<a name="using_keystore_jarsigner"></a>

Jarsigner 是常用的命令列公用程式，用於使用安全地存放在硬體安全模組 (HSM) 上的金鑰簽署 JAR 檔案。Jarsigner 的完整教學課程超出 AWS CloudHSM 文件的範圍。本節說明您應該用來簽署和驗證簽章的 Jarsigner 參數，並以 AWS CloudHSM 做為透過 AWS CloudHSM 金鑰存放區的信任根。

# 使用 Jarsigner 設定 AWS CloudHSM 金鑰和憑證
<a name="jarsigner_set_up_certificates"></a>

在使用 Jarsigner 簽署 AWS CloudHSM JAR 檔案之前，請確定您已設定或完成下列步驟：

1. 遵循 [AWS CloudHSM 金鑰存放區必要條件](keystore-prerequisites.md)中的指引。

1. 設定您的簽署金鑰以及關聯的憑證和憑證鏈，這些憑證和憑證鏈應存放在目前伺服器或用戶端執行個體的 AWS CloudHSM 金鑰存放區中。在 上建立金鑰， AWS CloudHSM 然後將相關聯的中繼資料匯入至您的 AWS CloudHSM 金鑰存放區。使用[向金鑰存放區註冊預先存在的 AWS CloudHSM 金鑰](register-pre-existing-keys-with-keystore.md)中的程式碼範例，將中繼資料匯入金鑰存放區。如果您要使用 Keytool 設定金鑰和憑證，請參閱 [使用 keytool 建立新的 AWS CloudHSM 金鑰](create_key_keytool.md)。如果您使用多個用戶端執行個體來簽署 JAR，請建立金鑰並匯入憑證鏈。然後將生成的金鑰存放區文件複製到每個用戶端執行個體。如果您經常產生新的金鑰，您可能會發現將憑證個別匯入至每個用戶端執行個體更容易。

1. 整個憑證鏈必須是可驗證的。若要驗證憑證鏈，您可能需要將 CA 憑證和中繼憑證新增至 AWS CloudHSM 金鑰存放區。如需使用 Java 程式碼驗證憑證鏈的說明[，請參閱使用 AWS CloudHSM 和 Jarsigner 簽署 JAR 檔案](jarsigner_sign_jar_using_hsm_jarsigner.md)中的程式碼片段。如果需要，您也可以使用 Keytool 匯入憑證。如需使用 Keytool 的指示，請參閱[使用 Keytool 將中繼憑證和根憑證匯入 AWS CloudHSM Key Store](import_cert_using_keytool.md)。

# 使用 AWS CloudHSM 和 Jarsigner 簽署 JAR 檔案
<a name="jarsigner_sign_jar_using_hsm_jarsigner"></a>

使用以下命令，使用 AWS CloudHSM 和 jarsigner 簽署 JAR 檔案：

```
jarsigner -keystore example_keystore.store \
        -signedjar signthisclass_signed.jar \
        -sigalg sha512withrsa \
        -storetype CloudHSM \
        -J-classpath '-J/opt/cloudhsm/java/*:/usr/lib/jvm/java-1.8.0/lib/tools.jar' \
        -J-Djava.library.path=/opt/cloudhsm/lib \
        signthisclass.jar <key pair label>
```

使用以下命令來驗證已簽署的 JAR：

```
jarsigner -verify \
        -keystore example_keystore.store \
        -sigalg sha512withrsa \
        -storetype CloudHSM \
        -J-classpath '-J/opt/cloudhsm/java/*:/usr/lib/jvm/java-1.8.0/lib/tools.jar' \
        -J-Djava.library.path=/opt/cloudhsm/lib \
        signthisclass_signed.jar <key pair label>
```