我必须使用WebSphere键集的一个问题。我创建一个使用在另一台计算机使用此命令密钥工具生成的公钥密钥库:
keytool -import -noprompt -alias eeccstore -keystore eeccstore.jks -file D:\Keys\eecc_public.key -storepass password
此后,在WebSphere服务器创建密钥库作为下一个图像如下:
密钥库用途:主要设置密钥库
Create keystore in Websphere Server
我用,我用它来创建使用keytool密钥库的密码相同。
然后,我创建在WebSphere服务器密钥集作为下一个图像如下:
Create keyset in Websphere Server
在我的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
据我所知,服务器找不到键集中任意键,但我不知道我可能是做错了。
预先感谢您对我们的支持。
Reggard!
经过搜索的日子里,我找到了解决办法。取而代之的访问密钥集,我获得直接密钥存储和获取不是关键,但至极可以创建公共密钥,并用它来任何文本加密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-密钥库”的路径是,我用它来创建我在WebSphere服务器密钥库的名称。