2012-02-24 179 views
0

有第三方Web服务托管通过HTTPS,同时消费Web服务我面临SSL握手失败错误。SSL握手失败

出于安全考虑,我们无法访问第三方网址或服务,只有我们的客户可以从那里访问环境。

我已经做了足够的命中和审判,但仍然没有成功。

我们的应用程序运行在Weblogic 9.2上。

第三方提供了证书(.p7b格式)。我已经将这些证书导入到javakeystore(cacerts)中,即使在weblogic密钥库(demotrust.jks)中也是如此,但仍然是相同的错误。我已经尝试了在密钥库中导入证书的不同组合,我也可以在密钥库中看到证书的输入。

即使我们要求客户端在该环境中生成的存根(因为我们无法从我们的环境访问),使用HTTP存根正在生成但使用HTTPS时,它会导致SSL握手失败。

我想如果我们解决了这个问题,那么应用程序也会运行。

应用程序在http上运行良好,但是在https上它会导致SSL握手失败错误。

我已经正确地从(.p7b转换为.cer格式然后导入)转换,甚至使用.p7b将.pem转换为.der格式,然后导入到java密钥存储区demotrust.jks中,但仍然不起作用。

我错过了任何步骤,请让我知道。

+0

你不能问第三方什么问题?我会认为你不是他们唯一的客户。 – 2012-02-24 17:48:21

+1

第三方证书是否由知名认证机构签署?如果它是自签名的,Java将不会使用它,除非您还将CA证书添加到密钥库。 – 2012-02-24 17:59:01

+0

实际上有3个证书,我猜一个是根CA,另一个是中间CA。我尝试单独导入以及一起导入,但没有成功。 – 2012-02-25 08:48:46

回答

0

通过将证书添加到cacerts文件并将其指向weblogic来解决此问题。 内部证书链未正确导入到cacerts文件中。