在Swisscom CloudFoundry上强制HTTPS

时间:2018-07-17 08:44:35

标签: swisscomdev

我正在使用在Docker容器中运行的Gun​​icorn服务我的Web应用程序。有没有办法强制我使用HTTPS而不是HTTP?

Dockerfile

FROM ubuntu:latest

RUN apt-get update

RUN apt-get install -y python python-pip git
RUN apt-get install -y nodejs npm
RUN apt-get install -y nginx

RUN ln -s /usr/bin/nodejs /usr/bin/node

RUN pip install gunicorn greenlet gevent

RUN npm install --global bower gulp

COPY /flask/requirements.txt /flask/requirements.txt
COPY /flask/package.json /flask/package.json
COPY /flask/bower.json /flask/bower.json

WORKDIR /flask
RUN pip install -r requirements.txt
RUN npm install
RUN bower install --allow-root

WORKDIR /
COPY /flask /flask
COPY /configurations/production/* /flask/

WORKDIR /flask

RUN gulp build --production

EXPOSE 9000
ENTRYPOINT ["gunicorn", "-c", "gunicorn_config.py", "wsgi:app"]

1 个答案:

答案 0 :(得分:2)

在Swisscoms PaaS中,HTTPS在负载均衡器上终止。因此,您不能使用仅将HTTP重定向到HTTPS的简单方法,因为您在应用程序上看到的所有流量都是HTTP。

但是,您可以做的是检查X-Forwarded-Proto HTTP标头,并在标头指出流量通过HTTP服务时返回到HTTPS的重定向。

  

X-Forwarded-Proto   X-Forwarded-Proto标头提供了来自客户端的HTTP请求的方案。如果客户端发出不安全请求(端口80),则方案为HTTP;如果客户端发出安全请求(端口443),则方案为HTTPS。通过检查传入流量的HTTP标头并使用HTTP方案拒绝包含X-Forwarded-Proto的流量,开发人员可以将其应用程序配置为拒绝不安全的请求。

来源:https://docs.developer.swisscom.com/concepts/http-routing.html