如何将.cer公钥导入java信任存储?
下面是我用来将公钥导入信任存储的命令如何将.cer公钥导入java信任存储?,java,encryption,public-key-encryption,keytool,java-security,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 certif
$ 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环境中导入它。也许这和特殊的角色有关
任何帮助都将不胜感激。keytool错误的原因:java.lang.Exception:输入不是X.509证书是因为有人试图导入公钥而不是导入证书(即使文件扩展名是
.cer
,页眉----BEGIN公钥------
和页脚----END公钥------
表示文件不包含有效证书,但仅包含公钥)。术语公共证书和公钥有时会被错误地互换使用。是否应该将证书导入到信任存储?证书有---BEGIN certificate-----
和---END certificate-----
。不。我的意思是,您拥有的文件不是证书,而是公钥。您需要证书In为了导入到信任存储。Ihor,此处没有完整上下文,keytool-keystore cacerts-importcert-alias my_alias-file dev.cer-storepass changeit-v,此返回什么?Avery证书包含公钥,但公钥本身无法转换为证书。您从何处获得密钥?然后公司at计划调用您的API时向您发送了公钥而不是证书。您无法将密钥导入信任存储-您需要证书。您可以请求证书或编写代码直接使用公钥解密承载令牌。