Ich möchte sichergehen, dass für einige URLs meiner Website SSL verwendet wird. Ich habe schon viele Antworten auf SO gesehen.
https://stackoverflow.com/questions/724968/force-redirect-to-ssl-for-all-pages-apart-von-einem
Ich denke, ich werde mod_rewrite verwenden.
In meiner Frage geht es mehr um die Konfiguration des virtuellen Hosts, um meine Django-Anwendung über HTTP und über HTTPS problemlos auszuführen. Ich benutze WSGI.
Ist es ein Problem, die Konfiguration über *: 443 und über *: 80 zu duplizieren? Wie mache ich die beste Konfiguration?
Vielen Dank.
Rémy
Sie können einen Dekorator für Ihre Ansichten verwenden, um sie nur von SSL zu verwenden.
@secure_required
@login_required
def edit_member(request, slug):
...
http://www.redrobotstudios.com/blog/2009/02/18/securing-django-with-ssl/
Es ist in Ordnung, die Konfiguration für *: 443 zu übernehmen. So habe ich es auf meinem Server gemacht:
<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>
Stellen Sie sicher, dass Sie SSL auf dem virtuellen *: 443-Host (SSLEngine) aktivieren. Außerdem muss Ihr Zertifikat eingerichtet sein (SSLCertificateFile).
Außerdem müssen Sie das SSL-Modul für Apache2 aktivieren. Geben Sie als root ein:
a2enmod ssl