我有一个可以连接到很多外部服务的应用程序。我正在添加一个需要客户端身份验证的新SOAP客户端。我能够让它工作,但不是没有打破应用程序中的其他东西,所以我真的很困惑发生了什么。一些快速背景:
-Djavax.net.ssl.keyStore =“keystore.p12”-Djavax.net.ssl.keyStorePassword =“password”-Djavax.net.ssl.keyStoreType =“pkcs12”
keytool -importkeystore -srckeystore keystore.p12 -destkeystore cacerts -srcstoretype pkcs12
它不起作用!如果我们这样做并且将cacerts指定为每个步骤3的密钥库(不包括最后一个arg,因为它是不同的商店类型,对吧?)
因此,通过步骤1-3,我们可以使用新的集成,但问题是应用程序中的其他内容现在已经中断了!之前没有指定其他密钥库(我的理解是它无论如何都默认为cacerts)。我们现在遇到错误,例如AWS的SES(电子邮件)服务抛出异常,例如:
有人可以向我解释造成这场冲突的原因以及解决方法吗?非常感谢你的帮助!
杰夫
答案 0 :(得分:0)
不确定但很可能:
JKS格式的私钥条目上的密码可以与包含商店(文件)上的密码不同,但许多应用程序(包括所有使用javax.net.ssl.keyStore*
属性的应用程序都无法处理。
确保p12上的导入前密码(包含商店和密钥的单个密码)与目标jks上的商店密码相同(安装的cacerts
为{ {1}})或指定两个changeit
具有相同的值。