Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将.cer公钥导入java信任存储?_Java_Encryption_Public Key Encryption_Keytool_Java Security - Fatal编程技术网

如何将.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时向您发送了公钥而不是证书。您无法将密钥导入信任存储-您需要证书。您可以请求证书或编写代码直接使用公钥解密承载令牌。