0

我需要在 WebSphere Portal 6.1 上运行的应用程序中使用数字签名。是否有任何 API 用于从服务器密钥存储中检索 java.security.PrivateKey?我想避免在我的应用程序源代码中显示密钥存储和存储密码的路径。

4

1 回答 1

5

查看 IBM KeySetHelper API

首先,在 WAS admin 中定义一个 KeyStore。这将通过路径引用文件系统上的密钥数据库(JKS、PKCS12 等)。然后定义一个命名的 KeySet 并引用 KeyStore。在与 KeyStore 中的标签匹配的密钥集中创建一个别名。如果您在商店中有多个密钥,这将限制对特定密钥的访问。

然后,您可以通过 KeySetHelper 按名称“查找”命名的密钥库。注意:您需要知道商店中的密钥类型。您不需要知道代码中密钥数据库中的标签(甚至密码)。但是,您需要知道密钥是否是共享密钥(在这种情况下,您将收到java.security.SecretKey实现。由于您需要java.security.PrivateKey,请确保加载个人证书到在 WAS 中表示为您的密钥库的密钥数据库中。

如果您手动将证书加载到支持密钥库的密钥数据库中,则可以省略密钥集的密钥生成器类名称参数。如果您想让 WAS 生成密钥,就可以使用它。如果您还需要java.security.PublicKey,请务必选中“生成密钥对”选项。在这种情况下,您会从KeySetHelper::getLatestKeysForKeySet调用中返回一个 com.ibm.websphere.crypto.KeyPair,其中包含一个 java.security.PrivateKey 和一个 java.security.PublicKey(以及对 java.security.Certificate 的访问权限) )。

也可以看看:

于 2012-12-14T03:01:16.107 回答