6

Django開発サーバーでスマートカードベースの認証を使用したいと思います。これは、私が住んでいる場所で広く受け入れられている認証手段だからです。

Apacheを使用すると、.htaccess認証が必要なディレクトリにファイルを作成することで有効にできます。

SSLVerifyClient require
SSLVerifyDepth 2

そして仮想ホストで:

    <Directory /var/www/www/secure>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride AuthConfig Options
            Order allow,deny
            allow from all
    </Directory>

そして、次のような証明書と失効リストを参照することによって:

SSLCACertificateFile  /etc/apache2/certificate.crt
SSLCARevocationPath /etc/apache2/crl

Djangoでのテストと開発の目的でこの機能がないのは非常に面倒です。それを設定する方法について何かアイデアはありますか?

編集:マーティン、あなたの答えに感謝します、しかしそれはまだ私が望むところに私を得るのを本当に助けませんでした。とにかく、今私は誰かが質問に答えるための報奨金を開いて、サンプルコードの小さな断片/または何を読むべきか、どこから始めるべきかについてのより明確なものを提供しました。

4

4 に答える 4

3

この答えは、マーティンの答えに便乗します。Fabric http://docs.fabfile.org/0.9.4/のようなものを使用して、開発環境apache+wsgiのセットアップを自動化できます。

明らかに、これには事前の時間/コストがかかりますが、それが完了すると、必要な数の環境をすばやく簡単にセットアップできるようになります。

これをウォッチャーhttp://www.splitbrain.org/blog/2011-01/07-watcher_a_recursive_incron_alternativeと組み合わせて、変更を加えるたびにwsgiファイルに自動的にアクセスし、環境をリロードすることができます。

于 2011-02-25T22:23:03.047 に答える
3

apacheで開発環境を動かしてみませんか?django開発サーバーができることはApacheがあなたのためにできないことは何もありません。開発目的に非常に便利なため、実際に自動コード変更ピックアップを設定できます。wsgiを使用する場合は、ここで詳細を読むことができます:http ://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

于 2011-02-25T14:15:22.980 に答える
2

開発サーバー(または一般的にPython)のSSL機能は非常に平凡です。これは最近、PythonとDjangoの新しいバージョンで変更された可能性がありますが、私はそれを疑っています。

実際には、開発サーバーにSSL認証機能は必要ありません。最も簡単なのは、同じ変数を設定するカスタムWSGIミドルウェアを使用してApacheにデプロイする場合、Apacheを模倣することです(mod_ssl証明書の解析に依存しないでください。最も簡単なのは、認証された証明書を環境にエクスポートして使用することです。 、たとえば、さらにOCSPまたはCRLチェックを行う場合)、クライアント証明書で認証されるのと同じようにアプリケーションを動作させます。このアプローチでは、ユーザーが模擬証明書を使用して名前にÕÄÖÜŽŠなどの文字が含まれている場合に発生するような、いくつかのトリッキーなテストを実行することもできます。

于 2011-02-19T15:52:50.697 に答える
0

開発環境でnginx+green unicorn+djangoを使用してSSLを実行するのは本当に簡単です。基本的に、次のことを行う必要があります。

  1. pip install gunicorn
  2. runserverする代わりにrun_gunicorn
  3. apt-get install nginx(またはport install nginx +ssl、実行しているOSによっては、何でもかまいません。)
  4. nginxを構成します。これが例です

django_ssl_auth... SSLクライアント認証を使用する場合は、githubの私のプロジェクトを参照してください。

于 2013-06-06T06:09:20.157 に答える