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グローバルサイン【公式】