我必须访问托管在端口 443 的 Web 服务。服务提供商已与我们共享三个证书。
- ABCD.cer
- CA_Certificate.cer
- CCA_Certificate.cer
我必须通过为 SSL 通信创建一个表单链来将它们添加到 keystore 中。我已按照以下步骤操作。
keytool -keystore npci_keystore_test.jks -genkey -alias npci_client_testore
Result :- keystore npci_keystore_test.jks created.
keytool -import -keystore npci_keystore_test.jks -file CA_Certificate.cer -alias theCARoot
Result :- certificate CA_Certificate.cer is added to keystore.
keytool -import -keystore npci_keystore_test.jks -file CCA_Certificate.cer -alias theCCARoot
Result :- certificate CCA_Certificate.cer is added to keystore.
keytool -import -keystore npci_keystore_test.jks -file ABCD.cer -alias npci_client_testore
在第 4 步我有以下异常
输入 keystore 密码:(当我输入密码时出现以下异常)
keytool 错误:java.lang.Exception:回复中的公钥与 keystore 不匹配
我已经在 SO 中进行了搜索,但到目前为止还没有成功。
我正在按照以下来源创建商店并在其中导入证书。 JKS Keystore
编辑:---
我已经通过更改证书的导入顺序对其进行了测试,但到目前为止还没有成功。
最佳答案
这里的问题是您在导入证书时使用的别名与您在创建 JKS 商店时使用的别名相似。只需更改别名即可解决您的问题。源文档[1]需要做相应的更正。
[1] http://docs.oracle.com/cd/E19509-01/820-3503/ggfgo/index.html
关于java.lang.异常 : Public keys in reply and keystore don't match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27742554/