我正在使用Openshift DIY墨盒。我希望能够在我的应用程序上使用https。事实上,我的安全配置需要安全连接。我无法像本页所解释的那样让它工作。有没有办法让https在DIY墨盒上工作?
感谢
注意:我的应用程序是一个spring-boot应用程序,我使用的是嵌入式tomcat容器。如果你想知道任何细节,请告诉我,我可以在这里发布。
请参阅此图,该图显示了如何将请求路由到应用程序。基本上,OpenShift Online在您的应用程序前面使用反向代理,SSL连接在那里终止,永远不会到达您的实际应用程序。您可以将应用程序编写为不需要SSL,然后检查请求标头中的连接类型,看看它是否确实是SSL连接。
您必须强制客户端通过安全连接https。正如这里所解释的,你可以;
-
绑定到端口443,因此到达该端口的请求将转发到您的应用程序。
-
使用
x-forwarded-proto
标头来确定您的客户端是通过http还是https进行连接。
根据您的盒带和解决方案,有多种方法可以做到这一点。在我的案例中,我使用的是DIY墨盒和Spring Boot,我所要做的就是添加;
tomcat.protocol_header: x-forwarded-proto
在我的application.yaml文件中。同时,我修改了嵌入式Tomcat以连接到443端口。除此之外,我的应用程序在$OPENSHIFT_DIY_IP
和$OPENSHIFT_DIY_PORT
上运行。
其他(Spring Boot)链接提供了帮助;
- 在代理服务器后面运行时启用HTTPS
- 如何在代理后面嵌入servlet容器