我想在同一个空间/组织中的两个应用程序之间创建一个安全的内部路由。永远不可能从外部到达Node.js应用程序。我的Java应用程序通过HTTP连接到Node应用程序(在express上运行)。
现在,我已经尝试通过创建名为example-route.apps.internal的路由来设置所需的配置,并将其分配给Node应用程序。下一步,我已经在443应用程序的网络配置中打开了端口(我尝试过80、8080) (目标是Node应用程序)。我重新整理了这两份申请。
然后,我打开了到链接http://example-route.apps.internal/test123的Java连接。我也尝试过使用https。结果是一样的。Java拒绝连接到这个URL。
现在,有以下问题:
谢谢!
发布于 2019-08-06 16:37:44
我想你快到了。
然后,我打开了到链接http://example-route.apps.internal/test123的Java连接。我也尝试过使用https。结果是一样的。Java拒绝连接到这个URL。
您应该使用http://example-route.apps.internal:8080/test123。您的应用程序被设置为在$PORT上侦听,在CF的当前版本中它总是8080。
通常,您不需要担心这一点,因为您的流量通过Gorouter (映射外部端口80 ->内部8080)。有了内部路线,交通是直接的,因此没有任何转变。这就是为什么您需要在URL中使用端口8080。
或者,您可以使用像尤里卡或领事这样的服务发现机制,但这不是一个要求。在这种情况下,服务会知道它在监听8080并在注册表中注册。
就HTTPS而言,这很棘手。您的应用程序只监听80/HTTP。您必须将其更改为侦听443/HTTPS,但随后需要证书和不同的服务器配置。这在技术上是可能的,但它是一整罐蠕虫。
在一些较新的版本中,newer会将HTTPS流量接受到容器中,可以使HTTPS变得更容易,但它仍然不是一个扣篮(至少在编写本文时是这样)。我希望这会在未来变得更好。
我应该以某种方式解决这个内部DNS吗?
内部DNS帮助定位您的其他应用程序,而不是端口。否则,您将需要管理IP地址,而IP地址经常更改,这将需要像Eureka或领事这样的东西。
如果我只使用env变量的端口,哪个端口是正确的?
请参见上面的。
如何从其他应用程序读取此端口?
现在一直是8080,而且已经有好几年了。它不太可能改变,所以您可能可以硬代码或将其安全地设置在一个配置文件中。
如果使用HTTP而不是HTTPS,通信有多安全?(我假设HTTPS在内部是不可能的)。它和外部的HTTPS连接一样安全吗?哪些设备之间,连接有多远?
通信量在外部是不可访问的,因为在某些情况下它不会离开单元格,或者在最坏的情况下,它会在两个单元之间传输,但是由于没有加密,通信在内部是可见的。这意味着您需要对您的CF提供程序有更多的信任,他们可以访问内部通信量。
如果是HTTPS,只有拥有密钥的人才能解密它。尽管如此,您仍然必须信任您的提供者,因为他们可能会获得密钥&使用它解密通信量。对他们来说,这将是比未加密的流量更多的工作。
希望这能帮上忙!
https://stackoverflow.com/questions/57364403
复制相似问题