はじめに
Cloudflare は現在 SSL を無料で提供しています。自分のサイトでこれを利用しないのはばかであり、しようとする過程ですべてを壊すなんて馬鹿げています。
アプリのコーディングは問題なくできますが、https/nginx/gunicorn/etc/idon'tknowtheterminology のセットアップまたは構成に関しては、Google の指示に従うのにかろうじて知っています。
質問
django-sslify を使用して、Django Web アプリで https を強制したいと考えています。次の既知の事実を考慮して、生活のバランスを崩さずにこれを達成するにはどうすればよいでしょうか?
既知の事実
- (無料の)Cloudflare DNSに接続されたDigitalOceanサーバーで実行されているDjango 1.7を使用しています。Django には、nginx と gunicorn が搭載されています (提供されていますか?)。基本的にこのガイドに従って、すべてをセットアップしました。
- 現在、私の Web サイトにアクセスすると、デフォルトで通常のhttp://example.comヘッダーが使用されます。
- 手動でhttps://example.comにアクセスすると、緑色のロックとすべてが機能しますが、これによりすべてのフォーム送信が「(403) CSRF 検証に失敗しました。リクエストは中止されました。」というエラーで中断されます。
- 私の Cloudflare サイト設定では、ドメインは現在「フレキシブル SSL」に設定されています。
- 既存のセットアップで django-sslify を使用しようとすると、すべてが完全に壊れ、ブラウザーは応答を返すことができません。
- この情報ナゲットは、Cloudflare の SSL で django-sslify を使用する場合、「フル SSL」構成設定を使用する必要があることを示しています。
- SSL ターミネーションを処理するには月額 20 ドルの Pro Cloudflare アカウントが必要であると述べられている場所で、ためらう理由が見つかりました。だから私は本当にこれを台無しにしたくない:/
- 私のnginxとgunicornの設定、特に私のnginxの設定のどこかに「http」または「https」の言及が1つしかありませんでした:
location / {
proxy_pass http://127.0.0.1:8001; ... }
わかりました、それが私が持っているすべてだと思います
また、私のサーバーは Phonegap アプリ用の Django Rest Framework API を提供していますが、これを考慮する必要はありますか? 追加情報を提供する必要がある場合はお知らせください。折り返しご連絡いたします。ご覧いただきありがとうございます!:)