Ian Lewis
Ian Lewis is a web developer living in Tokyo Japan. His current interests are in Django, python, alternative databases and rapid web application development. About Me...
  • DjangoのHTTPS対応開発サーバ

    Djangoの開発サーバはHTTPSを普段に対応してないので、HTTPS対応をどうやって開発すればいいんだろうと思ったら、調べてみた。秘密は開発サーバ、http用とhttps用を二つ立ち上げます。https開発サーバはstunnelでHTTPS対応します。stunnelは普通のソケットをSSL tunnelingをしてくれます。

    このドキュメント を使います。

    stunnel をインストールしてから、pemファイルを作ります。

    openssl req -new -days 365 -nodes -out newreq.pem -keyout /etc/stunnel/stunnel.pem
    

    stunnel の設定ファイルを適当なところに保存します (これから、dev_https)。acceptはhttpsサーバのポート。connectはhttps用の開発サーバのポートになります。

    pid =
    
    [https]
    accept=8002
    connect=8003
    

    stunnel に設定ファイルを指定してdaemonを立ち上げます

    stunnel dev_http
    

    https用の開発サーバを立ち上げます。 HTTPS=on の環境変数を設定しておけば、 request.is_secure()などは Trueをちゃんと返す。

    HTTPS=on python manage.py runserver 0.0.0.0:8003
    

    http用のサーバを立ち上げる

    python manage.py runserver 0.0.0.0:8000
    

    これで、 http://localhost:8001https://localhost:8002 で接続することができる。

    Send feedback このエントリーを含むはてなブックマーク はてなブックマーク - DjangoのHTTPS対応開発サーバ