生成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,intermmediate和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
上述错误的任何建议或原因。
答案 0 :(得分:0)
你的命令对我有用。
您使用的是哪个版本的keytool和openssl?你在其他服务器/版本/操作系统上试过这个吗?你的openssl.cfg文件中包含什么内容?
我注意到一件事看起来不正确的是你的上一个openssl命令,你用root而不是中间符号(int-ca.key)签署了结束证书。尝试使用它进行签名,然后导入它。这不应该导致这个问题,但是如果你有一个中间CA,我猜你想用它来签署最终证书而不是root。否则,中间体实际上没有任何价值。