结合使用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
那么
verisignclass1ca
和verisignserverca
是您可以指定要删除的别名。关于java - 如何查看和编辑cacerts文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20224446/