2013-09-01 40 views
0

生成的CSR和密钥库。SSL keytool错误:java.security.SignatureException:签名不匹配。同时导入中间证书

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 

生成的根,Intermmediate和服务器证书....

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. 

现在导入根,intermmediate和服务器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 

任何建议或理由上方错误。

回答

0

你的命令适合我。

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

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

相关问题