数行でできる Django https有効化


まずDjangoのプロジェクト正常に動いてることを確認してください

pip install django-sslserver
settings.py

INSTALLED_APPS = [
    ...
    'sslserver'
]
 ...
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT = False
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
 ...

SSL証明書を作ります


openssl genrsa -out foobar.key 2048
openssl req -new -key foobar.key -out foobar.csr
openssl x509 -req -days 365 -in foobar.csr -signkey foobar.key -out foobar.crt

サーバーを再度立ち上げます

python manage.py runsslserver 0.0.0.0:8000 --certificate /path/to/foobar.crt --key /path/to/foobar.key

以上です

と言いても形上のhttpsなので、証明書はちゃんとした所に発行してもらいましょう