我对 Bluemix Secure Gateway 的基础知识很满意,但我看不出有什么好的方法来设置肯定是常见的场景。
我的要求是:
- 现有的内部服务是通过 TLS 提供的,并且必须保持这种状态。它不检查客户端证书,它只是一个传统的 https:// ReST API。
- Secure Gateway 管道的外部端必须检查客户端证书,以仅允许某些已知客户端连接。
第二点是通过在 Secure Gateway UI 中设置目标时选择 TLS Mutual Auth 选项来实现的。但是,这会创建从客户端应用程序(此时实际上只是一个浏览器)到 Secure Gateway 管道内部端的 TLS 连接。从该管道的末端向内部服务输出的是明文的 HTTP。内部服务正确地拒绝了这一点,因为它期待 HTTPS。
我可以通过配置不带 TLS 的安全网关来建立有效连接,然后我从客户端浏览器一直到内部服务器获得 TLS 连接,但这里的问题是 Bluemix 管道对任何人都开放Internet 向内部服务器扔东西,虽然我们都知道“受信任的内部网络”应该是一个神话,但事实是这个东西从未设置为面向 Internet。我想在 Bluemix 管道的外端阻止除我的已知客户之外的任何人。
我认为我需要的是一种在 docker 映像中运行的管道内部端与内部服务器启动第二个 TLS 会话的方法。似乎是一个明显必要的功能,但我在文档中找不到任何参考。还是我错过了其他方式?