2

语境

我开发了一个部署在 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 连接的示例或替代解决方案。

我要什么

我不是说英语的人(不是很明显吗?),也许我在搜索词中没有使用正确的词。我可以理解,这种情况可能是一场噩梦并且难以解决,但我会坚持......我首先需要知道是否存在针对该问题的解决方案(或解决方案),以及它(或它们!)是否存在于哪里或者我怎样才能找到它/他们。我已经准备了不同的替代方案来与客户谈判,但我需要知道真相。我在这上面花了好几个小时。

4

1 回答 1

1

有几个解决方案。

1)为第二个“许可证/证书”支付更多的钱。他们会很乐意拿你的钱换取“特权”。:)

2) 在 443 上创建一个不同的虚拟服务器,它指向一个将您的客户端服务器地址作为池成员的池。然后在虚拟服务器上,附加一个配置为使用与传入连接相同的证书的 serverssl 配置文件。然后 F5 将使用相同的证书进行身份验证,并且您的应用服务器不需要安装客户端证书。此外,如果他们需要向您发起会话,您将必须设置一个带有 clientssl 配置文件的虚拟服务器,该配置文件使用相同的证书并需要客户端证书才能连接。

如果您的目的地可能不是静态地址,则必须创建一个 irule 来处理它。可以在 10 或更高版本的代码中使用 irule 中的 DNS 调用并为会话设置一个节点进行处理。

于 2013-04-21T05:36:41.990 回答