结合使用RAD 8.5和WAS 8.5运行时,我的控制台出现异常:
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编码的。

最佳答案

至于原始问题,您可以使用 keytool command来查看和编辑cacerts之类的 keystore 。

要在 keystore 中查看所有 key ,请使用keytool -list:

$ keytool -list -keystore ${keystore.file}

其中${keystore.file}cacerts文件的路径,在您的情况下为C:\IBM\Websphere85\jdk\jre\lib\security\cacerts

删除一个特定的 key ,请使用keytool -delete:
$ keytool -delete -alias ${cert.alias} -keystore ${keystore.file}

其中${cert.alias}是上述-list命令中的现有 key 别名。 *

添加一个已经在其他地方生成的新 key ,请使用keytool -importcert:
$ keytool -importcert -alias ${cert.alias} -keystore ${keystore.file} -file ${cer.file}

其中${cer.file}是现有证书或证书链的路径。

请注意,使用这些命令中的每一个,都会提示您输入 keystore 密码,而可以使用-storepass选项指定该密码。例如:
$ keytool -delete -noprompt -alias ${cert.alias} -keystore ${keystore.file} -storepass ${keystore.pass}

* ${cert.alias}是从keytool -list输出的行中最左边的值。

例如,如果这是keytool -list的输出:

$ keytool -list -keystore ./cacerts
Enter keystore password:

Keystore type: jks
Keystore provider: SUN

Your keystore contains 2 entries

verisignclass1ca, Jun 29, 1998, trustedCertEntry,
    Certificate fingerprint (MD5): 51:86:E8:1F:BC:B1:C3:71:B5:18:10:DB:5F:DC:F6:20
verisignserverca, Jun 29, 1998, trustedCertEntry,
    Certificate fingerprint (MD5): 74:7B:82:03:43:F0:00:9E:6B:B3:EC:47:BF:85:A5:93

那么verisignclass1caverisignserverca是您可以指定要删除的别名。

关于java - 如何查看和编辑cacerts文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20224446/

10-10 11:27