从WebSphere Portal 6.1(AS7)中的密钥存储中检索PrivateKey

时间:2012-12-12 15:02:19

标签: digital-signature websphere-7 private-key websphere-portal

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

1 个答案:

答案 0 :(得分: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的访问权限)。证书)。

另见: