我的应用程序需要与多个安全服务器通信。
我正在使用 keytool 导入证书。
证书导入步骤:
keytool -import -keystore aaa.jks -file aaa.co.uk.cer
keytool -import -keystore bbb.jks -file bbb.co.uk.cer
使用一个证书可以正常工作,但只要我导入第二个证书,前一个证书就会停止工作。
错误:
Exception:javax.naming.CommunicationException:
simple bind failed: aaa.co.uk:636
[Root exception is javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我也尝试了以下步骤,但它仍然失败了:
keytool -import -keystore aaa.jks -alias ms -file aaa.co.uk.cer
keytool -import -alias ms -file bbb.co.uk.cer
我想我应该将证书附加到一个密钥库中,但不知道该怎么做。
知道怎么做或者我错过了什么吗?
环境:Java 1.6
App Server:Glassfish
答案 0 :(得分:2)
感谢@BertNase的建议。
以下导入命令修复了此问题:
keytool -import -keystore myStore.jks -alias aliasA -file aaa.co.uk.cer
keytool -import -keystore myStore.jks -alias aliasB -file bbb.co.uk.cer
现在,此命令在同一密钥库中导入两个证书。
答案 1 :(得分:1)
也许您将两个证书都导入到同一个别名中?
告诉我们您正在使用的 keytool 命令行以及第二次导入后“正在停止工作”的命令。