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
fonte
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.Respostas:
É absolutamente necessário redirecionar todas as solicitações HTTP para https? Porque parece que é isso que você está tentando fazer aqui.
Sugiro que você comece removendo as seguintes linhas do seu conf:
Eu suspeito que a sintaxe pode estar errada lá. Em seguida, tente conectar-se novamente em cada protocolo http: // e https: //.
fonte
Não me lembro exatamente como descobri, mas me deparei com algo em algum lugar que sugeria colocar:
<VirtualHost _default_:443>
Ao invés de:
<VirtualHost *:443>
Desde que o substituí, meu SSL tem funcionado perfeitamente.
fonte
Tente editar seu arquivo para algo parecido com isto:
Este é um conf muito básico, se isso funcionar, adicione seus redirecionamentos, se ainda necessário.
Se isso não funcionar, por favor, mostre seu ssl.conf
fonte