2010-11-06 11 views
3

J'ai une application django et je voudrais appliquer SSL aux pages d'administration. Puisque la page d'administration est la seule page nécessitant SSL, je veux le faire en utilisant les fichiers de configuration d'apache et en n'utilisant pas SSLMiddleware. Mes (partielles) les fichiers de configuration apache ressemblent à ceci:Configuration django SSL 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> 

Le TLD .pvm est un TLD local, je viens d'utiliser pour les tests sur mon réseau interne.

J'ai mis en place un certificat auto-sgned et cela fonctionne, bien .... en quelque sorte. La chose étrange est que pour une raison quelconque lors de la réécriture à https, il ne peut pas trouver les fichiers multimédias dans le répertoire/media, pas d'images, pas de css, pas de js. Le journal des erreurs apache me dit qu'il est à la recherche dans le répertoire/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/ 

Quand je ne réécrivez pas https répertoire multimédia admin/usr/local/www/apache22/media. Ce média de répertoire est un lien logique:

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

Je ne sais pas pourquoi, sans SSL, il est à la recherche de:

/usr/local/www/apache22/media 

et SSL:

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

Ce dernier répertoire doesn N'existe pas !!!

Quelqu'un a-t-il une idée?

Répondre

0

Problème déjà résolu. Lors de l'ajout de la substance dans le conteneur VirtualHost *: 443

J'avais oublié de spécifier la directive DocumentRoot afin qu'elle soit comme spécifiée dans le httpd.conf principal.

Cela s'est bien passé dans le conteneur VirtualHost *: 80 car dans cette section j'avais spécifié DocumentRoot.

En httpd.conf il est précisé que: DocumentRoot "/ usr/local/www/apache22/data"

+0

Merci de poser et de résoudre cela. Je ferai la même chose dans quelques jours et cela me donnera un bon départ. – jlarry

+0

De rien. J'ai également changé la règle de réécriture en: RewriteRule ^/admin (. *) Https: //www.whitemoorstudio.pvm/admin [L, R = 301]. Notez également que les emplacements de fichiers sont pour mon serveur FreeBSD. – Henri

+0

s'il vous plaît marquer votre réponse comme correcte – Sheena