使用包含多个证书的Java Keystore关闭SSL连接

时间:2015-12-09 17:58:29

标签: java ssl certificate keystore keytool

我的问题如下:

我需要与服务器建立可信连接,以便使用几个Web服务。问题在于服务器管理配置文件,因此仅在作为特定用户请求时才提供某些服务。

目前有两个用户配置文件,每个用户配置文件与特定证书相关联(并且每个证书都打包为单独的 .pfx 文件)。为了能够与Java建立安全连接,我继续使用keytool将两个证书导入密钥库。

当我将每个证书导入一个新的个人密钥库时,一切都像魅力一样,我能够成功连接和使用这些服务。当然,这导致我有两个不同的密钥库(现在,可能' n'如果将来出现更多的用户配置文件),因此我继续导入两个 .pfx 进入一个密钥库。

这就是事情开始变得混乱的地方:无论我申请哪种导入流程(并且相信我已经尝试了很多,包括不必要的中间步骤,例如导出到 .pem 或者首先使用openSSL .der 文件),其中一个用户配置文件总是被服务器拒绝。此外,所述拒绝始终是相同的配置文件,无论我先导入哪两个。

我应该注意到,我特别注意别名(这是我怀疑的第一件事之一),并且在导入过程中明确声明了源和目标别名(使用-srcalias-destalias)。

我目前正在使用SoapUI测试生成的密钥库,并且我可以让有问题的配置文件证书工作的唯一方法是将它存放在自己的个人密钥库中。我需要它们都在同一个密钥库中。

有没有人知道如何继续?

1 个答案:

答案 0 :(得分:1)

回答我自己的问题:

证书或输入过程没有问题。问题是没有根据别名正确选择证书,这是因为SSL_SOCKET_FACTORY系统属性设置错误(因此,我的自定义SSL套接字工厂类没有被使用)。

我附上了消息来源'帮助我大大缩小问题范围的网址: