Конфигурация django SSL apache - PullRequest
       8

Конфигурация django SSL apache

3 голосов
/ 07 ноября 2010

У меня есть приложение django, и я хотел бы применить SSL к страницам администратора.Поскольку страница администратора является единственной страницей, требующей SSL, я хочу сделать это с помощью файлов конфигурации apache, а не с помощью SSLMiddleware.Мои (частичные) файлы конфигурации Apache выглядят так:

<VirtualHost *:80>
    .
    .
    DocumentRoot /home/www/sites_django/wmssite
    .
    <Directory "/home/www/sites_django/wmssite">
        .
    </Directory>

    <Location "/admin">
        RewriteEngine On
        RewriteRule ^/(.*) https://www.whitemoorstudio.pvm/admin [L,R=301]
    </Location>
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile "/usr/local/etc/apache22/www_whitemoorstudio_pvm.crt"
    SSLCertificateKeyFile "/usr/local/etc/apache22/www_whitemoorstudio_pvm.key"
    .
    .
</VirtualHost>

TLD .pvm - это локальный TLD, который я просто использую для тестирования во внутренней сети.

Я настроил самсертификат и это работает, ну .... вроде.Странно то, что по какой-то причине при перезаписи на https он не может найти медиа-файлы в каталоге / media, ни изображения, ни css, ни js.Журнал ошибок apache говорит мне, что он ищет в каталоге / usr / local / www / apache22 / data / media:

[Sat Nov 06 20:45:18 2010] [error] [client 192.168.1.134] File does not exist: /usr/local/www/apache22/data/media, referer: https://www.whitemoorstudio.pvm/admin/

Когда я не перезаписываю в https административный медиа-каталог / usr / local/ WWW / apache22 / СМИ.Этот носитель каталога является логической ссылкой:

media -> /usr/local/lib/python2.5/site-packages/django/contrib/admin/media

Я понятия не имею, почему без SSL он ищет:

/usr/local/www/apache22/media

и с SSL в:

/usr/local/www/apache22/data/media

Этот последний каталог не существует !!!

Кто-нибудь есть идеи?

1 Ответ

0 голосов
/ 07 ноября 2010

Проблема уже решена. При добавлении материала в контейнер VirtualHost *: 443

Я забыл указать директиву DocumentRoot, чтобы она была такой, как указано в основном httpd.conf.

В контейнере VirtualHost *: 80 все прошло хорошо, потому что в этом разделе я указал DocumentRoot.

В httpd.conf это указано как: DocumentRoot "/ usr / local / www / apache22 / data"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...