两个应用程序使用相同的密钥库时出现SSL握手异常

时间:2017-12-19 16:24:17

标签: java ssl spring-boot https keystore

我有2个应该互相请求的springboot应用程序。它们通过https工作,我为here所描述的两者创建了相同的密钥库。但是当第一个发送请求到第二个时,我得到下一个错误:

Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://service: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

ssl属性是

server.port = 5000
security.require-ssl=true
server.ssl.key-store-type:PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=secret
server.ssl.key-alias=alias

我认为应该提到 - 证书是自签名的。

我错过了什么或做错了什么?

1 个答案:

答案 0 :(得分:0)

这没有意义。每一端的身份都不相同,因此他们的证书不应该是相同的,也不应该是他们的私钥。否则他们不是私人的。

你需要:

  • 两个密钥对
  • 两个证书
  • 两个主要商店
  • 两个信任商店

必须导出每个密钥库中的证书,然后在每种情况下将其导入 peer 信任库。