我想确保我的网站的某些 URL 可以使用 SSL。我在 SO 上已经看到了很多答案。
https://stackoverflow.com/questions/724968/force-redirect-to-ssl-for-all-pages-apart-from-one
所以我想我会使用mod_rewrite。
我的问题更多是关于如何配置虚拟主机以通过 HTTP 和 HTTPS 顺利运行我的 Django 应用程序。我正在使用 WSGI。
仅在 *:443 和 *:80 上复制配置有问题吗?我该怎么做才能获得最佳配置?
谢谢。
雷米
答案1
您可以在视图上使用装饰器,使它们仅对 ssl 有效。
@secure_required
@login_required
def edit_member(request, slug):
...
http://www.redrobotstudios.com/blog/2009/02/18/securing-django-with-ssl/
答案2
复制 *:443 的配置是可以的,下面是我在我的服务器上的操作方法:
<VirtualHost *:80>
ServerName www.mydomain.tld
ServerAlias mydomain.tld
DocumentRoot /path/to/www
<Directory /path/to/www>
AllowOverride All
Order allow,deny
allow from all
Options -MultiViews
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName www.mydomain.tld
ServerAlias mydomain.tld
DocumentRoot /path/to/www
<Directory /path/to/www>
AllowOverride All
Order allow,deny
allow from all
Options -MultiViews
</Directory>
SSLEngine On
SSLCertificateFile /etc/ssl/private/mydomain.crt
</VirtualHost>
请确保在 *:443 虚拟主机 (SSLEngine) 上激活 SSL,并设置您的证书 (SSLCertificateFile)。
您还需要激活 Apache2 的 ssl 模块,以 root 身份输入:
a2enmod ssl