【问题标题】:SSL keytool error: java.security.SignatureException: Signature does not match. while importing intermmediate certificateSSL keytool 错误:java.security.SignatureException:签名不匹配。导入中间证书时
【发布时间】:2013-09-01 01:32:36
【问题描述】:

生成的 CSR 和密钥库。

keytool -genkey -alias posbo -keyalg RSA -keystore keystore.jks -keysize 1024

keytool -certreq -keyalg RSA -keysize 1024 -alias posbo -file certreq.csr -keystore keystore.jks -storepass changeit

生成的根证书、中间证书和服务器证书......

openssl genrsa -des3 -out root-ca.key 1024 

openssl req -new -x509 -days 365 -key root-ca.key -out root-ca.crt -config openssl.cfg


openssl genrsa -des3 -out ca-int.key 1024 

openssl req -new -days 365 -key ca-int.key -out ca-int.csr -config openssl.cfg

openssl x509 -req -days 365 -in ca-int.csr -CA root-ca.crt -CAkey root-ca.key -set_serial 01 -out ca-int.crt 



openssl x509 -req -days 365 -in certreq.csr -CA root-ca.crt -CAkey root-ca.key -set_serial 01 -out server.crt.

现在正在将 root 、 intermediate 和 server crt 导入到 keystore.jks 中

keytool -import -trustcacerts -alias rootca -file root-ca.crt -keystore keystore.jks
Success.


keytool -import -trustcacerts -alias intercom -file ca-int.crt -keystore keystore.jks.
keytool error: java.security.SignatureException: Signature does not match

上述错误的任何建议或原因。

【问题讨论】:

    标签: openssl ssl-certificate keytool


    【解决方案1】:

    你的命令对我有用。

    您使用的是什么版本的 keytool 和 openssl?您是否在另一台服务器/版本/操作系统上尝试过此操作?您的 openssl.cfg 文件中有什么内容?

    我注意到看起来不正确的一件事是在您的最后一个 openssl 命令中,您正在使用根而不是中间 (int-ca.key) 签署最终证书。尝试用它签名,然后导入它。这不应该导致这个问题,但如果你有一个中间 CA,我猜你想用它来签署最终证书而不是根证书。否则,中间体实际上没有任何价值。

    【讨论】: