linux 中的 keytool 导入证书 java.util.IllegalFormatConversionException

keytool import certificate java.util.IllegalFormatConversionException in linux

我想创建一个密钥库以在 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 中没有显示任何错误。

怎么了?

提前致谢

我认为问题出在 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