以下是我用于将公钥导入信任库的命令。
$ keytool -import -trustcacerts -file dev.cer -alias my_alias -keystore truststore.jks -storepass mypass -v
我得到的输出是:
keytool error: java.lang.Exception: Input not an X.509 certificate
java.lang.Exception: Input not an X.509 certificate
at sun.security.tools.keytool.Main.addTrustedCert(Main.java:2652)
at sun.security.tools.keytool.Main.doCommands(Main.java:1006)
at sun.security.tools.keytool.Main.run(Main.java:340)
at sun.security.tools.keytool.Main.main(Main.java:333)
dev.cer
文件的内容如下:
-----BEGIN PUBLIC KEY-----
... encoded text ...
-----END PUBLIC KEY-----
还有一件值得一提的是,这个证书是在Windows运行的机器上生成的,我想在Linux环境中导入它。也许它与特殊人物有关。
非常感谢任何帮助。
答案 0 :(得分:2)
keytool error: java.lang.Exception: Input not an X.509 certificate
的原因是由于不是导入证书,而是尝试导入公钥(即使文件扩展名为.cer
,标头{{ 1}}和页脚-----BEGIN PUBLIC KEY-----
表示文件不包含有效证书,但仅包含公钥。有时错误地使用公共证书和公钥这两个术语可以互换使用。