Djangoの開発サーバをHTTPSで起動したいなと思ったら、
django-extensionsのRunServerPlusでできるよう。
簡単にできたので、その時の備忘録。
インストール
まずはインストール
$ pip install django-extensions # RunServerPlusを使うためのライブラリ $ pip install Werkzeug $ pip install pyOpenSSL
RunServerPlusはWerkzeug デバッガーが組み込まれてるので、Werkzeugも追加
settings.pyに設定を追加
インストールしたので、settings.pyに設定を追加していく
# アプリに追加
INSTALLED_APPS = [
# ...
'django_extensions',
]
# ロギングを追加: DEBUGだと多いのでWARN
LOGGING = {
# ...
'loggers': {
...
'werkzeug': {
'handlers': ['console'],
'level': 'WARN',
'propagate': True,
},
},
}
# 起動するIPアドレスとポートを指定
RUNSERVERPLUS_SERVER_ADDRESS_PORT = '0.0.0.0:8000'
# SSL関連の設定を有効化
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
オレオレ証明書(自己証明書)の作成
証明書が必要なので、オレオレ証明書を用意しておく。
$ openssl genrsa 2048 > server.key $ openssl req -new -key server.key > server.csr $ openssl x509 -in server.csr -days 365000 -req -signkey server.key > server.crt
# おまけ: パスフレーズをあとで削除する $ openssl rsa -in server.key -out server.key
HTTPSで起動
そして、起動。runserverの代わりに、runserver_plusで起動すればOK!
$ python manage.py runserver_plus --cert-file ./server.crt
以上!!
参考にしたサイト様
- Welcome to the django-extensions documentation! — django-extensions 2.2.5 documentation
- RunServerPlus — django-extensions 2.2.5 documentation
- オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まつてゐる
- Django 開発サーバ Runserver を SSL/HTTPS 化する | CentOS 7 | ジェイス ブログ
- SSLを利用するための自己証明書(オレオレ証明書)の設定メモ - Qiita
- SSLを利用するための自己証明書(オレオレ証明書)の設定メモ - Qiita
- Apacheでの、パスフレーズ入力なしでの起動方法 | サポート・お申し込みガイド | GMOグローバルサイン【公式】