【问题标题】:keytool import certificate java.util.IllegalFormatConversionException in linuxlinux中的keytool导入证书java.util.IllegalFormatConversionException
【发布时间】:2018-04-18 10:50:49
【问题描述】:

我正在尝试创建要在 tomcat 中使用的密钥库,但使用 keytool 时出现错误“java.util.IllegalFormatConversionException: d != java.lang.String”。这仅在 linux (centos7) 中发生,但在 windows 中不会发生。 我用

创建了密钥库
keytool -genkey -keyalg RSA -alias client -keystore testkeystore -storepass mypassword  -validity 3650

并尝试使用

导入证书
keytool -import -alias  arubaauth  -trustcacerts -keystore testkeystore -file root_autenticazione_ATe.cer

相同的命令和相同的证书在windows中不会显示任何错误。

怎么了?

提前致谢

【问题讨论】:

  • 检查我更新的答案。这解决了我的问题。
  • 完成。这也解决了我的问题。谢谢

标签: tomcat keystore keytool cer


【解决方案1】:

我认为问题出在 Java 8.151 和 Java 9 中包含的 Keytool 版本。旧版本对我来说可以正常工作。尝试降级您的 JDK 环境

编辑:进一步的调查让我意识到最后一个 java 版本的问题只发生在某些语言上。因此,通过添加参数-J-Duser.language=en来强制keytool的输出语言为英文即可解决问题。

可能 tomcat 的默认语言与英语不同。 尝试运行此命令:

keytool -J-Duser.language=en -import -alias  arubaauth  -trustcacerts -keystore testkeystore -file root_autenticazione_ATe.cer

【讨论】:

  • 你拯救了我的一天!我的问题出在语言上,我使用的是 Java 8,当我强制使用英语时,SHA1 密钥被正常打印出来。
  • 确实,我认为问题在于输出中存在非 ASCII 字符。
猜你喜欢
  • 2014-03-01
  • 1970-01-01
  • 2013-03-28
  • 2020-03-26
  • 2013-01-17
  • 2014-06-05
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
相关资源
最近更新 更多