10 votos

Después de habilitar HTTPS en mi servidor Apache2 - Tengo errores 404 en cada solicitud

Vale, no he tenido nunca experiencia con SSL/HTTPS, sólo he tratado con HTTP estándar. Recientemente he empezado a trabajar en un sitio que necesitará SSL. Así que, por supuesto, me he ido a investigar cómo y empecé. He llegado a la etapa de instalar el certificado SSL con éxito - el candado verde aparece y el servidor responde a las peticiones HTTPS en el puerto 443. El problema que tengo es que no importa lo que haga, no puedo conseguir que aparezca ninguna página usando HTTPS/SSL, sin embargo aparecen bien en el puerto 80/HTTP (hasta que redirijo HTTP a HTTPS).

En pocas palabras, puedo acceder al sitio HTTPS absolutamente bien, sin embargo, mis páginas no se envían, en lugar de un 404 se envía para cada solicitud.


/etc/apache2/sitios-disponibles/[nombre].conf

<VirtualHost *:80>
    ServerName [serverName]

    RewriteEngine On

    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
</VirtualHost>

<VirtualHost *:443>
    ServerName [serverName]
    ServerAdmin [email]
    DocumentRoot [docRoot]

    # I know the following SSL cert stuff is correct

    SSLEngine On
    SSLCertificateFile [...]/[domain].crt
    SSLCertificateKeyFile [...]/[certificate].key
    SSLCertificateChainFile [...]/[theotherone].crt

    ErrorLog ${APACHE_LOG_DIR}/[custom]_error.log
        CustomLog ${APACHE_LOG_DIR}/[custom]_access.log combined

        <Directory "[docRoot]">

                Options Indexes FollowSymLinks MultiViews

        AllowOverride All
        Order allow,deny
        allow from all

        </Directory>

</VirtualHost>

No estoy seguro de si hay algo más que quieras mirar, o cualquier otro detalle, pero si lo hay házmelo saber.

EDITAR:

Después de buscar un poco en los archivos de configuración he establecido que por alguna razón, cuando se conecta a HTTPS, el servidor está utilizando root del documento en la configuración por defecto (/var/www/) sin embargo esta configuración por defecto no está habilitada con a2ensite. Parece que no puedo averiguar dónde se encuentra la configuración que está causando esto

11voto

Ivan Puntos 553

¿Es absolutamente necesario redirigir todas las peticiones http a https? Porque parece que eso es lo que estás tratando de hacer aquí.

Le sugiero que empiece por eliminar las siguientes líneas de su conf:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

Sospecho que la sintaxis puede estar mal ahí. A continuación, intente conectarse de nuevo en cada uno de los protocolos http:// y https://.

11voto

Michael Longhurst Puntos 301

No recuerdo exactamente cómo lo descubrí, pero me topé con algo en alguna parte que sugería poner:

<VirtualHost _default_:443>

En lugar de:

<VirtualHost *:443>

Desde que lo sustituí, mi SSL funciona perfectamente.

10voto

Anthony Fornito Puntos 95

Intente editar su archivo para que tenga un aspecto similar a este:

Esta es una conf muy básica, si esto funciona añade tus redirecciones si aún son necesarias.

Si esto no funciona por favor muestre su ssl.conf

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
         <Directory "[docRoot]">
        AllowOverride All
        </Directory>
        DocumentRoot [docRoot]
        ServerName [serverName]
</VirtualHost>

<VirtualHost *:443>
        SSLEngine on
       SSLCertificateFile [...]/[domain].crt
       SSLCertificateKeyFile [...]/[certificate].key
       SSLCertificateChainFile [...]/[theotherone].crt
         <Directory "[docRoot]">
        AllowOverride All
        </Directory>
        DocumentRoot [docRoot]
        ServerName [serverName]
</VirtualHost>

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X