Description of problem: When accessing a python cartridge via HTTPS, mod_wsgi does not seem to detect the HTTP_X_FORWARDED_PROTO as https as set the wsgi_url_scheme accordingly. Version-Release number of selected component (if applicable): python-2.6 cartridge and whatever version of mod_wsgi that entails. How reproducible: 100% Steps to Reproduce: 1.create a python-2.6 gear. 2.access it via https 3.check wsgi_url_scheme value in the request Actual results: always returns 'http' Expected results: when using https, should return 'https' when using http, should return 'http' Additional info:
The front-end Apache sets X-Forwarded-Proto before proxying to the wsgi server. It must be getting filtered or reset at the back-end.
I've posted on modwsgi to try and get some clarity on the expected behavior since I don't think double proxied / multi-web layers were taken into account during the initial wsgi spec design. https://groups.google.com/forum/?fromgroups#!topic/modwsgi/Egi6pg7c2X8 I don't quite understand the response. Does it make sense to you? Specifically: "to identify that proxy actually terminate https and not http." I'm also poking around in mod_wsgi.c to see if I can get some clarity on what was designed to happen.
Following the linked comment above works: $ curl -k https://rmt2-rmillner0211.dev.rhcloud.com/env ... wsgi.url_scheme: https
Pull request submitted: https://github.com/openshift/crankcase/pull/311 https://github.com/openshift/li/pull/157
Pull request accepted.
Checked on devenv_1933, issue has been fixed. #curl -k https://py1-bmengdev.dev.rhcloud.com/env ... HTTPS: 1 HTTP_X_FORWARDED_PROTO: https ... wsgi.url_scheme: https ... #curl -k http://py1-bmengdev.dev.rhcloud.com/env ... HTTP_X_FORWARDED_PROTO: http ... wsgi.url_scheme: http