Ok, então eu nunca tive experiência com SSL / HTTPS, apenas lidei com HTTP padrão. Recentemente, comecei a trabalhar em um site que precisará 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, não importa o que eu faça, não consigo exibir nenhuma página usando HTTPS / SSL, no entanto, eles apareceram bem na porta 80 / HTTP (até redirecionar HTTP para HTTPS).
Simplificando, eu posso acessar o site HTTPS absolutamente bem, 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 examinar ou outros detalhes, mas, se houver, me avise.
EDITAR:
Após algumas pesquisas nos arquivos de configuração, estabeleci que, por qualquer motivo, ao conectar-se ao 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 no a2ensite. Não consigo descobrir onde está localizada a configuração que está causando isso
Rewrite
diretivas parecem que você está tentando executar o Apache atrás de um proxy reverso mal configurado. Se o seu Apache estiver servindo o domínio diretamente sem nenhum proxy, você deve simplesmente largar todas asRewrite
diretivas e substituí-las por uma únicaRedirect
. E configure arquivos de log separados para cada umVirtualHost
, para que você possa ver exatamente qualVirtualHost
processo cada solicitação.