为了账号安全,请及时绑定邮箱和手机立即绑定

Websphere 密钥集未获取最新密钥

Websphere 密钥集未获取最新密钥

侃侃无极 2021-09-29 17:46:17
我在使用 Websphere 密钥集时遇到问题。我使用在另一台计算机上使用 keytool 使用以下命令生成的公钥创建了一个密钥库:keytool -import -noprompt -alias eeccstore -keystore eeccstore.jks -file D:\Keys\eecc_public.key -storepass password之后,在 Websphere Server 中,我在下图中创建了如下所示的 KeyStore:密钥库用法:密钥集密钥库在 Websphere Server 中创建密钥库我使用与使用 Keytool 创建 KeyStore 时使用的密码相同的密码。然后我在 WebSphere Server 中创建 keySet,如下图所示:在 Websphere Server 中创建密钥集在我的 java 代码中,我使用的键集如下:KeySetHelper ksh = KeySetHelper.getInstance();KeyPair key = (KeyPair)ksh.getLatestKeyForKeySet("eeccKeySet");控制台向我展示了这一点:java.lang.NullPointerExceptioncom.ibm.ws.crypto.config.WSKeySet.getLatestKey(WSKeySet.java:257)com.ibm.websphere.crypto.KeySetHelper.getLatestKeyForKeySet我知道服务器在 KeySet 中找不到任何键,但我不知道我做错了什么。预先感谢您对我们的支持。
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

经过几天的搜索,我找到了解决方案。为了访问 KeySet,我直接访问 KeyStore 而不是获取密钥,而是使用 X509 证书创建公钥并使用它来加密任何文本。


    char [] passch = password.toCharArray();


    com.ibm.crypto.provider.JavaKeyStore keystore = new JavaKeyStore();


    keystore.engineLoad(new FileInputStream(new File(pathKeyFileJKS)), null);

    KeyStore.TrustedCertificateEntry privKeyEntry =  (TrustedCertificateEntry) 

    keystore.engineGetEntry("eecc-KeyStore", new KeyStore.PasswordProtection(passch)); 


    X509CertImpl cert = (X509CertImpl) privKeyEntry.getTrustedCertificate();


    cert.checkValidity();


    PublicKey publicKey  = cert.getPublicKey();

其中password变量包含我用来创建 eecc_public.key 文件的密码,pathKeyFileJKS包含创建 jks 文件的路径,“eecc-KeyStore”是我用来在 WebSphere Server 中创建我的 keyStore 的名称。


查看完整回答
反对 回复 2021-09-29
  • 1 回答
  • 0 关注
  • 223 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号