尝试将证书(刚刚更新)更新到 Tomcat 服务器上现有的密钥库

尝试将证书(刚刚更新)更新到 Tomcat 服务器上现有的密钥库

我有一个 .crt 文件用于更新运行 Tomcat 5.5 的服务器。如果我运行:

keytool - import -alias tomcat -keystore tomcat.ks - trustcacerts -file website.net.crt

我收到以下错误:

keytool error: gnu.javax.crypto.keyring.MalformedKeyringException: incorrect magic

顺便说一句,密钥库文件的默认密码是 changeit,我不确定为什么它不接受它

答案1

我们的 ssl.com 证书也遇到了同样的问题,但那里的支持人员非常乐于助人,他们告诉我们,我们的服务器上有多个版本的 Java,我们需要从我们正在使用的版本中明确调用 keytool 应用程序以避免冲突。例如,在我们的服务器上:

代替

keytool - import -alias tomcat -keystore tomcat.ks - trustcacerts -file website.net.crt

我们会使用

/usr/local/jdk/keytool - import -alias tomcat -keystore tomcat.ks - trustcacerts -file website.net.crt

答案2

我认为它表示您的密钥库已损坏。您可以对密钥库进行任何操作来查看它是否损坏?

答案3

您的密钥库需要包含的不仅仅是您自己的证书信息;它还需要将证书链接到您的证书颁发机构 (CA)。对于我来说,我的密钥库中最终有四个条目,其中只有一个是特定于我的。我刚刚为我的 GoDaddy 证书执行了此操作;这些是我输入的命令:

>keytool -import -alias root -keystore tomcat.sat.keystore -tr ustcacerts -file valicert_class2_root.crt 

Enter keystore password: PASSWORD 

Certificate already exists in system-wide CA keystore under alias <valicertclass2ca> Do you still want to add it to your own keystore? [no]: yes 

Certificate was added to keystore 

>keytool -import -alias cross -keystore tomcat.sat.keystore -trustcacerts -file gd_cross_intermediate.crt 

Enter keystore password: PASSWORD 

Certificate was added to keystore 

>keytool -import -alias intermed -keystore tomcat.sat.keystore -trustcacerts -file gd_intermediate.crt 

Enter keystore password: PASSWORD 

Certificate was added to keystore  

>keytool -import -alias tomcat -keystore tomcat.sat.keystore -trustcacerts -file loxpress.com.crt 

Enter keystore password: PASSWORD

Certificate reply was installed in keystore  

答案4

我认为您运行的是错误的 keytool。JDK 附带的程序不使用该类。您是否安装了 GNU CLASSPATH?如果是,请将其删除。它不是 Java,只是一个拙劣且非常片面的模仿。然后使用原始密钥库重复所有操作。任何由错误的 keytool 创建的内容都应丢弃。

相关内容