Host virtual basado en SSL con django y mod_wsgi

Tengo una aplicación web de django en la que se permite el acceso a algunas URL a través de http, mientras que otras tienen que estar solo a través de http seguro. Necesito configurar la configuración virtualHost / mod_wsgi en mi archivo conf de apache, para que se pueda acceder a la misma aplicación web en ambos. Seguí estos 2 mensajes

¿Cómo forzar el uso de SSL para alguna URL de mi aplicación Django?Django y SSL cuestionan

y tengo la siguiente configuración que creo que debería hacer el truco.

<code>NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html
    ServerName www.mydomain.com

    ErrorLog server-logs/error_log
    CustomLog server-logs/access_log common

    WSGIScriptAlias /test /var/www/my_app_root/apache/django.wsgi

    <Directory /var/www/my_app_root>
      Order allow,deny
      Allow from all
    </Directory>    
</VirtualHost>

NameVirtualHost *:443
<VirtualHost *:443>
    SSLEngine On
    SSLCertificateFile /etc/httpd/conf/ssl/mykey.crt
    SSLCertificateKeyFile /etc/httpd/conf/ssl/mykey.key

    ServerAdmin [email protected]
    DocumentRoot /var/www/html
    ServerName www.mydomain.com

    ErrorLog server-logs/error_log
    CustomLog server-logs/access_log common

    WSGIScriptAlias /test /var/www/my_app_root/apache/django.wsgi

    <Directory /var/www/my_app_root>
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>
</code>

Sin embargo, se accede a las direcciones URL a las que se debe acceder a través de http sin ningún problema, mientras que las que tienen que estar a través de https obtienen un error 404: no se encuentra. Tengo un decorador que ve si se está accediendo a una vista a través de http y luego redirige a una url con http reemplazado por https. Así que la url-mapping es correcta ya que veo que se está produciendo una redirección (lo que significa que se llama a la vista), pero en https, se genera un error 404.

Tengo una aplicación php de terceros en la raíz del documento del servidor web/var/www/html/ que funciona bien sobre https. De alguna manera, esa aplicación no enfrenta ningún problema a través de http o https.

Probé lo siguiente

Intenté el enfoque del modo Daemon con el mismoWSGIProcessGroup Nombre en ambos hosts virtuales, pero eso tampoco funcionó.Intenté agregar el comando Listen 443 y Apache se quejó de un error de puerto ya enlazado.

Editar:

Debido a todos sus comentarios, exploré las configuraciones un poco más y descubrí que había un archivo subconfección que se estaba introduciendo en el tiempo de ejecución que definía el host virtual *: 443 (y no tenía la directiva wsgiscript). Por eso elListen 443 Estaba lanzando un error. Y eso también explica el 404 para la url sobre https (el manejo del host virtual *: 443 no pudo resolver esa url). Ahora lo modifiqué y todo funciona bien. Los enfoques sugeridos en los mensajes de desbordamiento de 2 pilas en mi pregunta original son perfectos y funcionan correctamente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta