Назад | Перейти на главную страницу

Как принудительно использовать SSL для некоторых URL-адресов моего приложения Django?

Я хочу быть уверен, что для некоторых URL-адресов моего веб-сайта будет использоваться SSL. Я уже видел много ответов на SO.

https://stackoverflow.com/questions/724968/force-redirect-to-ssl-for-all-pages-apart-from-one

Думаю, я буду использовать mod_rewrite.

Мой вопрос больше о том, как настроить виртуальный хост для запуска моего приложения Django через HTTP и HTTPS без проблем. Я использую WSGI.

Проблема в том, чтобы просто продублировать конфигурацию более *: 443 и более *: 80? Как мне сделать, чтобы получить лучшую конфигурацию?

Спасибо.

Реми

вы можете использовать декоратор для своих представлений, чтобы они могли использовать только ssl.

@secure_required
@login_required
def edit_member(request, slug):
    ...

http://www.redrobotstudios.com/blog/2009/02/18/securing-django-with-ssl/

Можно скопировать конфигурацию для *: 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>

Обязательно активируйте SSL на виртуальном хосте *: 443 (SSLEngine), а также настройте свой сертификат (SSLCertificateFile).

Вам также необходимо активировать модуль ssl для Apache2, введите как root:

a2enmod ssl