ホームページ > バックエンド開発 > Python チュートリアル > Django/Flask 開発サーバーでの HTTPS の使用

Django/Flask 開発サーバーでの HTTPS の使用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-16 08:43:32
オリジナル
1297 人が閲覧しました

Django や Flask などのフレームワークを使用して Web アプリを開発する場合、通常、組み込みサーバーを使用してプログラムの開発とデバッグが行われ、プログラムの完成後にデプロイのために本番環境に転送されます。問題は、これらの組み込みサーバーが通常 HTTPS をサポートしていないことです。開発中に HTTPS を使用してテストできるようにしたいのですが、テストせずに実稼働環境にデプロイしたくないため、組み込みサーバーが必要です。 HTTPS をサポートします。

この問題は、外部プログラム stunnel によって解決できます。stunnel の機能は、OpenSSL ライブラリを通じて TCP セッションを暗号化し、安全なチャネルを確立し、暗号化なしまたは暗号化されていないプログラムを保護することです。これには 2 つの主な機能があります:

暗号化されていないデータ ストリームを受信し、SSL 暗号化を実行して、暗号化されたデータ ストリームをネットワーク経由で送信します。 暗号化されたデータ ストリームを復号化し、復号化されたデータ ストリームをネットワーク経由で別のプログラムに送信します。
stunnel の機能を理解すると、stunnel を使用して SSL 暗号化チャネルを確立し、それを Django/Flask 組み込みサーバーにバインドすることを簡単に考えることができます。Stunnel はポート 443 を開始してユーザーの HTTPS リクエストを受け入れ、それを復号化して送信します。組み込みサーバーの 8000 ポート。処理後、組み込みサーバーはデータを stunnel に送信し、暗号化してブラウザ ユーザーに返します。

上記の内容は非常に複雑に思えますが、実際には stunnel を使用するのは非常に簡単です。

stunnel:

を Django/Flask 開発サーバーと同じサーバーにインストールします

# yum install stunnel(在 CentOS 上)
ログイン後にコピー

または

$ sudo apt-get install stunnel4(在 Ubuntu 上)
ログイン後にコピー

SSL 証明書を購入していない場合は、自分で証明書を生成してください。ちなみに、このファイルのアクセス許可は 600 である必要があります:

# openssl req -new -x509 -days 365 -nodes -out vpsee.pem -keyout vpsee.pem

# chmod 600 vpsee.pem
ログイン後にコピー

https という名前の新しい構成ファイルを作成し、stunnel を使用してこの構成ファイルを実行し、ポート 443 を起動して Django/Flask 組み込みサーバーのポート 8000 に接続します。

# vi https
pid =
cert = vpsee.pem
debug = 7
foreground = yes

[https]
accept = 443
connect = 8000

# stunnel https
ログイン後にコピー

Django 組み込みサーバーを起動し、上記の構成ファイルに記載されているポート 8000 にバインドします。

# HTTPS=1 python manage.py runserver 0.0.0.0:8000

Flask 組み込みサーバーを起動するのに特別なことは何もありません。ポートを 8000 に変更して通常の方法で起動するだけです。

# vi run.py
#!flask/bin/python
from app import app
app.run(host='0.0.0.0', port=8000, debug = True)

# ./run.py
 * Running on http://0.0.0.0:8000/
 * Restarting with reloader
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート