我使用openssl创建了rootKey.pem,client.key:
$openssl genrsa -aes256 -out client.key 2048
$ sudo openssl req -config openssl.cnf -key rootKey.pem -new -
x509 -sha256 -extensions v3_ca -out root.crt -days 3650
$sudo openssl x509 -req -extfile openssl.cnf -extensions
v3_intermediate_ca -CA root.crt -CAkey rootKey.pem -
CAserial -days 1825 -in intermediateCsr.pem -out
intermediate.crt
我也使用openssl创建了一个链证书(目录证书为ROOT证书+中间证书)。
从client.key上的keyPair.getPrivate()我得到privateKey;当我这样做时:
keyStore.setKeyEntry("alias",privateKey,passphrase,chain-trust);
我明白了:
java.security.KeyStoreException: BCFKS KeyStore exception storing
private key: java.lang.IllegalArgumentException: RSA keys do not
have the same modulus
是什么原因..以及如何解决?
答案 0 :(得分:0)
本文将我带到了解决方案:
https://knowledge.digicert.com/solution/SO16899.html
使用以下命令将client.key保存在密钥存储中:
keyStore.setKeyEntry(“ alias”,密钥,Char []密码,Certificate []链);
密钥是client.key的私有部分,
Certificate []链应该是(client.crt + intermediate.crt + root.crt),并在一起。
错误地我只使用了串联在一起的(intermediate.crt + root.crt)。