Websphere 密钥集未获取最新密钥

我在使用 Websphere 密钥集时遇到问题。我使用在另一台计算机上使用 keytool 使用以下命令生成的公钥创建了一个密钥库:


keytool -import -noprompt -alias eeccstore -keystore eeccstore.jks -file D:\Keys\eecc_public.key -storepass password

之后,在 Websphere Server 中,我在下图中创建了如下所示的 KeyStore:


密钥库用法:密钥集密钥库


在 Websphere Server 中创建密钥库

http://img2.mukewang.com/615436010001509c05960493.jpg

我使用与使用 Keytool 创建 KeyStore 时使用的密码相同的密码。


然后我在 WebSphere Server 中创建 keySet,如下图所示:


在 Websphere Server 中创建密钥集

http://img.mukewang.com/6154360b0001b10605360535.jpg

在我的 java 代码中,我使用的键集如下:


KeySetHelper ksh = KeySetHelper.getInstance();

KeyPair key = (KeyPair)ksh.getLatestKeyForKeySet("eeccKeySet");

控制台向我展示了这一点:


java.lang.NullPointerException

com.ibm.ws.crypto.config.WSKeySet.getLatestKey(WSKeySet.java:257)

com.ibm.websphere.crypto.KeySetHelper.getLatestKeyForKeySet

我知道服务器在 KeySet 中找不到任何键,但我不知道我做错了什么。


预先感谢您对我们的支持。


侃侃无极
浏览 224回答 1
1回答

一只甜甜圈

经过几天的搜索,我找到了解决方案。为了访问 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 的名称。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java