Okay, quindi non ho mai avuto esperienza con SSL / HTTPS, mi sono sempre occupato di HTTP standard. Di recente ho iniziato a lavorare su un sito che avrà bisogno di SSL. Quindi, ovviamente, sono uscito e ho cercato come iniziare. Sono arrivato alla fase di installazione del certificato SSL correttamente: viene visualizzato il lucchetto verde e il server risponde alle richieste HTTPS sulla porta 443. Il problema che ho è che, indipendentemente da ciò che faccio, non riesco a visualizzare alcuna pagina utilizzando HTTPS / SSL, tuttavia sono apparsi bene sulla porta 80 / HTTP (fino a quando non reindirizzerò HTTP su HTTPS).
In parole povere, posso accedere perfettamente al sito HTTPS, tuttavia le mie pagine non vengono inviate, ma viene inviato un 404 per ogni richiesta.
/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>
Non sono sicuro se c'è qualcos'altro che potresti voler guardare, o altri dettagli, ma se ce ne fosse fatto sapere.
MODIFICARE:
Dopo aver cercato nei file di configurazione, ho stabilito che per qualsiasi motivo, durante la connessione a HTTPS, il server utilizza la radice del documento nella configurazione predefinita (/ var / www /), tuttavia questa configurazione predefinita non è abilitata con a2ensite. Non riesco a capire dove si trova la configurazione che sta causando questo
Rewrite
direttive sembrano tentare di eseguire Apache dietro un proxy inverso mal configurato. Se il tuo Apache sta servendo il dominio direttamente senza alcun proxy, dovresti semplicemente abbandonare tutte leRewrite
direttive e sostituirle con una singolaRedirect
. E configura file di registro separati per ognuno inVirtualHost
modo tale da poter vedere esattamente qualeVirtualHost
processo di ogni richiesta.