Si vous utilisez wsgi avec nginx pour servir vos application Django, vous avez peut être rencontré ce problème : request.is_secure() return false, alors que votre site est bien en HTTPS…
La solution est très simple, dans votre fichier de conf Nginx ajoutez:
server { listen 443; server_name my_domain.io; ssl on; ssl_certificate /etc/nginx/certificates/certif.crt; ssl_certificate_key /etc/nginx/certificates/certif.key; location / { [...] uwsgi_param HTTP_X_FORWARDED_PROTO $scheme; [...] } }
Et dans votre fichier settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
$ sudo service nginx restart $ sudo service uwsgi restart
Et voilà, is_secure devrait vous retourner True et request.scheme devrait vous retourner https 😉
Tchuss.