Depois de ativar o HTTPS no meu servidor Apache2 - obtenho erros 404 em cada pedido [fechado]

10

Ok, então eu nunca tive nenhuma experiência com SSL / HTTPS, apenas lidei com HTTP padrão. Recentemente, comecei a trabalhar em um site que precisa de SSL. Então, claro, eu saí e pesquisei como e comecei. Cheguei ao estágio de instalar o certificado SSL com êxito - o cadeado verde aparece e o servidor responde às solicitações HTTPS na porta 443. O problema que tenho é que não importa o que eu faça, não consigo que páginas apareçam usando HTTPS / SSL, no entanto, eles apareciam bem na porta 80 / HTTP (até eu redirecionar HTTP para HTTPS).

Simplificando, posso acessar o site HTTPS sem problemas, no entanto minhas páginas não estão sendo enviadas, e um 404 é enviado para cada solicitação.

/ etc / apache2 / sites-available / [name] .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>

Não tenho certeza se há mais alguma coisa que você queira analisar, ou quaisquer outros detalhes, mas se houver, entre em contato.

EDIT:

Após algumas pesquisas nos arquivos de configuração, estabeleci que, por qualquer motivo, ao conectar-se a HTTPS, o servidor está usando a raiz do documento na configuração padrão (/ var / www /), mas essa configuração padrão não é ativada a2ensite Eu não consigo descobrir onde a configuração que está causando isso está localizada

    
por Michael Longhurst 01.12.2016 / 18:40

3 respostas

11

Eu não consigo me lembrar exatamente como eu percebi isso, mas me deparei com algo em algum lugar que sugeriu colocar:

<VirtualHost _default_:443>

Em vez de:

<VirtualHost *:443>

Desde que substitui isso, meu SSL está funcionando perfeitamente.

    
por 12.12.2016 / 02:15
11

É absolutamente necessário redirecionar todas as solicitações http para https? Porque parece que é o que você está tentando fazer aqui.

Sugiro que você comece removendo as seguintes linhas do seu conf:

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

Eu suspeito que a sintaxe esteja errada. Em seguida, tente se conectar novamente em cada protocolo http: // e https: //.

    
por 01.12.2016 / 19:18
10

Tente editar seu arquivo para algo parecido com isto:

Este é um conf muito básico, se isso funcionar, adicione seus redirecionamentos se ainda for necessário.

Se isso não funcionar, por favor, mostre seu arquivo 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>
    
por 01.12.2016 / 19:12