使用mTLS保护Spring Boot应用程序-在Swisscom App Cloud上运行

时间:2018-10-16 16:40:13

标签: spring-boot ssl cloudfoundry mutual-authentication swisscomdev

我有一个Spring Boot应用程序部署到Swisscom App Cloud,应该使用mTLS进行保护。

很明显,有了春天的安全性……专门针对Swisscom App Cloud,我读到了有关保护https://docs.developer.swisscom.com/adminguide/securing-traffic.html上流量的信息。

我不清楚两者如何一起玩...

  • 如果我通过Spring Security启用了mTLS,是否可以按原样工作或需要Swisscom App Cloud的其他配置? (我遇到了HTTP路由,其中​​提到了传递mTLS https://docs.developer.swisscom.com/concepts/http-routing.html的客户端证书)
  • Swisscom App Cloud上的mTLS配置是否可以替代我本应通过春季安全性启用的功能,还是我仍需要在应用程序中进行某些配置?
  • 确保流量安全涉及部署清单和BOSH清单,是在Swisscom App Cloud上启用mTLS所需的后一种(可能还有其他)配置(即,除了部署清单之外,我还需要访问配置)吗?

更新

我的用例是,我拥有一个REST API,它将由Swisscom App Cloud以外的客户端使用。决定使用mTLS对其进行保护。

1 个答案:

答案 0 :(得分:0)

您所指的管理指南仅供平台运营商(即Swisscom)使用,因此它不是最终用户可以利用的资源。

您的用例是什么?如果只出于安全考虑需要检查列表,请注意该平台本身将很快在内部使用mTLS,因此从整个路径直到保护应用程序容器为止。对于您的审核员而言,这可能就足够了。

如果您确实需要自己验证客户端证书,则CF的做法是利用X-Forwarded-Client-Certhttps://docs.cloudfoundry.org/concepts/http-routing.html#-forward-client-certificate-to-applications)。

但是,我们目前尚未启用此功能(直到现在为止都不需要启用),但是我们可以启用。

更新:

根据此explanationX-Forwarded-Client-Cert的插入实际上是由平台透明完成的。因此,如果将客户端应用程序的证书添加到服务器应用程序的信任库中,它将验证客户端证书。

更新2: 正如您在下面的讨论中所看到的,从概念上看,目前似乎没有简单的方法允许应用程序使用X-Forwarded-Client-Cert进行正确的mTLS。当前唯一的选择是使用tcp路由,您可以向Appcloud支持团队请求该路由。