语境
我开发了一个部署在 Glassfish 3.1 中的应用程序。此应用程序只能通过 https 访问,有时它必须连接到位于客户网络之外的第三方 Web 服务。客户在他的网络中有其他应用程序;我的只是一个新的“服务”。
拓扑近似
- Big-ip F5 是 ssl 端点。客户在此设备中拥有有效证书
- IIS 按域重定向到相应的服务
- glassfish 是带有应用程序的机器(当然,超过 glassfish 3.1)
这个怎么运作
当用户尝试连接到 _https://somedomain 时,请求会到达 SSL 加密结束的 F5;现在我们有一个请求到_http://somedomain。在下一步中,F5 将此请求重定向到 IIS,最后重定向到 glassfish。此请愿书已成功处理。
兴趣点
- 我完全控制 glassfish 服务器和它所在的虚拟机的 SO。没有其他应用程序正在或将要部署在此服务器上;它是应用程序及其所需的一些服务的专用服务器。Glassfish 在具有 Debian 发行版的 VM 上运行,因此该 VM 由 VM 服务器提供,但我不知道品牌、型号等。glassfish 具有默认的 http 侦听器配置。
- 我没有关于网络和其他设备的更多信息,也无法访问任何其他设备的任何配置文件。我不能为自己修改网络的任何部分,但可以要求、建议或建议进行更改。网络的行为不应改变。
- 实际上,用户可以毫无问题地访问应用程序。
- 使用的证书是Verysign信任的简单域证书
- 客户不知道如何解决这个问题。
问题
应用程序必须访问的所有第三方 WS 都具有唯一的 https 访问权限,并且在某些情况下,所需的身份验证是相互的(双向),我们在这里发现了问题。当应用程序想要通过相互 ssl 身份验证连接到 WS 时,它会发送 glassfish 本地密钥库配置目标证书。如果可能,客户希望对传入和传出的安全连接使用相同的证书。该证书在 F5 中,我无法添加到 glassfish 密钥库,因为如果我这样做,我将违反 Verysign 合同要求。我一直在谷歌寻找解决方案,这里(stackoverflow),jita,......但只有我找到的传入流量解决方案。我知道可能需要 SSL 代理,但我没有找到任何用于传出 ssl 连接的示例或替代解决方案。
我要什么
我不是说英语的人(不是很明显吗?),也许我在搜索词中没有使用正确的词。我可以理解,这种情况可能是一场噩梦并且难以解决,但我会坚持......我首先需要知道是否存在针对该问题的解决方案(或解决方案),以及它(或它们!)是否存在于哪里或者我怎样才能找到它/他们。我已经准备了不同的替代方案来与客户谈判,但我需要知道真相。我在这上面花了好几个小时。