1

我得到以下错误 -

keytool error: java.lang.IllegalArgumentException: publicKey's is not X.509, but X509

尝试使用以下命令生成密钥库时 -

keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -validity 366 -storepass test -keypass password -dname 'cn=${env.HOSTNAME},ou=foo,o=bar,l=testCity,s=testState,c=testCoutry' -keystore

在我的 Ubuntu 机器上将 JDK 升级到 1.7 update 40 后,我看到了这个错误。

4

3 回答 3

0

在 Windows 上升级到 1.7u45 后,我的团队遇到了同样的错误消息。当http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7109096向后移植到 JDK 7时,引入了此错误消息。

代码更改的相关部分在 CertAndKeyGen.java 中:

+        // publicKey's format must be X.509 otherwise
+        // the whole CertGen part of this class is broken.
+        if (!"X.509".equalsIgnoreCase(publicKey.getFormat())) {
+            throw new IllegalArgumentException("publicKey's is not X.509, but "
+                    + publicKey.getFormat());
+        }

似乎默认的 publicKey 格式不正确,或者应该更新等号检查以检查“X509”。

于 2013-11-20T16:21:38.137 回答
0

当我们更改默认安全提供程序时,我们会遇到此类问题。请参阅 \lib\security\java.security 中的提供程序列表

于 2014-03-04T13:26:25.450 回答
0

这是一个旧帖子,但只是把它放在这里以防其他人偶然发现它。在我的情况下,问题是由 JAVA_HOME 系统变量指向系统路径中设置的不同目录/JDK 安装引起的。除非您涉足 java.security 文件,否则请检查您的 JAVA_HOME 系统变量,并确认您的 PATH 系统变量没有指向任何其他 JDK 安装。在我的情况下,它是。当我修复 PATH 变量时,问题就消失了。

于 2015-03-10T15:52:20.990 回答