2013-11-26 271 views
7

使用RAD 8.5与8.5运行时,我得到我的控制台上的异常:如何查看和编辑cacerts文件?

The keystore located at "C:\IBM\Websphere85\jdk\jre\lib\security\cacerts" failed to load due to the following error: DerInputStream.getLength(): lengthTag=109, too big..

寻找我得到了错误后这种link这表明编辑文件,并删除空行/额外的字符。

如何编辑文件?我在Windows环境下,该文件似乎是base64编码。

+0

根据同样的链接,这不是与Base64编码的问题编码本身,而是与后多余的空行或可见数据结束。 “Base64”仅包含纯ASCII文本([根据其定义](http://en.wikipedia.org/wiki/Base64)),因此您可以使用记事本或任何其他纯文本编辑器。 – usr2564301

+0

@Jongware:记事本似乎不是一个很好的编辑器。我不得不在Wordpad中打开它,但由于编码原因我仍然无法读取它,因此无法验证我是否做出了很好的编辑。那么,它并没有工作。 – Prince

+0

不幸的是,你并没有帮助我们来帮助你... 1.实际上你的问题是OT *,除非*这是你写的代码的特定问题; 2.我的建议是基于您自己的说法,您所说的文件与您的链接中的文件类型相同; 3.编辑一个普通的Base64文件*应该*可以使用记事本,如果这是不可能的,那么它不是*你认为它是*的文件,或者它不是相同的*错误*你认为它是。 – usr2564301

回答

2

以下是一种实际解决此问题的方法,无需查看或编辑文件。

默认的keyStore类型是JKS,WSKeyStore类假定它是引发上述错误的PKCS12文件。所以我们需要将cacerts文件转换为.p12格式。

使用命令行实用程序keytool我执行:

C:\IBM\WebSphere85\AppServer\java\bin>keytool -importkeystore^
-srckeystore C:\IBM\WebSphere85\AppServer\java\jre\lib\security\cacerts^
-destkeystore C:\IBM\WebSphere85\AppServer\java\jre\lib\security\cacerts.p12^
-srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit -noprompt 

这给了我一个cacerts.p12文件,它可能通过上述类轻松读取。

参考