首页 > 解决方案 > keytool 错误:java.lang.IllegalArgumentException:publicKey 不是 X.509,而是 OpenJDK 1.8.162 中的 X509

问题描述

我正在尝试使用命令生成密钥

keytool -genkey -dname CN=<>, OU=AB, O=AB, L=AB, ST=AB, C=US -alias myalias -keypass pwd -keystore C:/tmp_1.54/serverKeystore -storepass pwd -storetype PKCS12 -providername JsafeJCE -keyalg RSA -keysize 2048 -validity 360

但是在运行 keytool 时出现以下错误。我正在使用 OpenJDK 1.8.162。

Error : keytool error: java.lang.IllegalArgumentException: publicKey's is not X.
509, but X509
java.lang.IllegalArgumentException: publicKey's is not X.509, but X509
        at sun.security.tools.keytool.CertAndKeyGen.generate(CertAndKeyGen.java:
162)
        at sun.security.tools.keytool.Main.doGenKeyPair(Main.java:1739)
        at sun.security.tools.keytool.Main.doCommands(Main.java:1007)
        at sun.security.tools.keytool.Main.run(Main.java:366)
        at sun.security.tools.keytool.Main.main(Main.java:359)

需要帮助来解决此问题。

标签: javax509keytoolpublic-key

解决方案


此问题已解决。我试图首先在 OpenJDK 1.8 中启用 FIPS(使用 RSA Bsafe),然后尝试在引发此错误的产品中启用 SSL。后来我更改了第一个 SSL 的顺序,然后启用了无缝工作的 FIPS。在这里我发现的问题是 OpenJDK 1.8 在启用 SSL 之前不支持 RSA Bsafe 库。


推荐阅读