如何将.cer公钥导入java信任库?

时间:2016-09-02 15:09:48

标签: java encryption public-key-encryption keytool java-security

以下是我用于将公钥导入信任库的命令。

$ 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环境中导入它。也许它与特殊人物有关。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

keytool error: java.lang.Exception: Input not an X.509 certificate的原因是由于不是导入证书,而是尝试导入公钥(即使文件扩展名为.cer,标头{{ 1}}和页脚-----BEGIN PUBLIC KEY-----表示文件不包含有效证书,但仅包含公钥。有时错误地使用公共证书和公钥这两个术语可以互换使用。