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
我想创建一个密钥库以在 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