Apache配置将SSL挂钩到Django

时间:2011-04-23 17:18:56

标签: django apache ssl django-wsgi

我有一个需要一些用户凭据的django应用程序。我想通过HTTPS发送登录/注册数据。我已经自行生成了一个证书以进行测试,并且还要求提供外部证书,尽管这个证书正在申请中。

我想确保我不会搞砸我的AWS实例。我从不同的教程中抓取了一些内容。例如,在一个教程中,SSLCertificateKeyFile是一个.pem文件,但是另一个教程将它作为.key文件。我只能在我的dirs中找到一个.key文件,所以我只是用它。此外,我不确定“IfDefine”条件是否必要/适用,我也不知道我的SSL虚拟主机的最后一行是否应该包括在内,这似乎是基于嗅探IE进行更改。

我的mod-WSGI配置通常如下所示:

   <VirtualHost *:80>
    ServerName mysite.com
    ServerAlias www.mysite.com

    DocumentRoot /home/dir/

    Alias /media/ /home/dir/public_html/media/
    <Directory /home/dir/public_html/media>
    Options -Indexes
    Order deny,allow
    Allow from all
    </Directory>

    Alias /admin_media/ /home/dir/project/admin/
    <Directory /home/dir/project/admin >
    Order deny,allow
    Allow from all
    </Directory>

    WSGIScriptalias / /home/dir/project/apache/django.wsgi

     WSGIScriptalias / /home/dir/project/apache/django.wsgi
    <Directory /home/dir/project/apache >
    Order deny,allow
    Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log
    </VirtualHost>

我为https连接添加了以下虚拟主机:

    <IfDefine SSL>

    <VirtualHost *:443>

    ServerName mysite.com
    ServerAlias www.mysite.com

    DocumentRoot /home/dir/

    SSLEngine on
    SSLCertificateFile /usr/lib/ssl/www.mysite.com.crt
    SSLCertificateKeyFile /usr/lib/ssl/www.mysite.com.key

      #SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

     </VirtualHost>
     </IfDefine>

这看起来对吗?这是否足以通过自定义装饰器开始要求某些视图的https?我还想要求管理员请求https。我见过以下内容:

    RewriteRule(。*)https://example.com/ $ 1 [L,R = 301]     ...

我不知道如何在不摆脱Alias-ing的情况下使RewriteRule工作。我该怎么处理?

谢谢!

0 个答案:

没有答案