Apache não redirecionará HTTP para HTTPS

Apache não redirecionará HTTP para HTTPS

Quando eu insiro o URL não SSL do meu site "cms00.example.com" no meu navegador, ele não redireciona parahttps://cms00.example.com. Se eu inserir o endereço HTTP, poderei ver o site e se inserir o endereço HTTPS, poderei ver o site. Simplesmente não consigo fazer o redirecionamento de http para https funcionar. Li vários artigos sobre como fazer isso e tentei todas as sugestões, mas minha configuração ainda não funciona. Estou executando o Apache 2.4.10 no Debian 8 e esta é a primeira vez que trabalho com o Apache.

Executei esses dois comandos e verifiquei se os módulos rewrite e SSL foram carregados:

sudo a2emod rewrite   # <- already enabled
sudo a2emod ssl       # <- already enabled

Não fiz nenhuma modificação em /etc/apache2/apache2.conf e não criei nenhum arquivo .htaccess adicional.

Aqui está meu arquivo de configuração:

# /etc/apache2/sites-available/vhosts.conf
DirectoryIndex index.php index.html

<VirtualHost *:80>
  ServerName cms00.example.com
  DocumentRoot "/var/www/html"
  Redirect permanent / https://cms00.example.com
</VirtualHost>

<VirtualHost *:443>
  ServerName cms00.example.com
  DocumentRoot "/var/www/html"

  SSLEngine on
  SSLCipherSuite AES256+EECDH:AES256+EDH
  SSLProtocol All -SSLv2 -SSLv3
  SSLHonorCipherOrder On
  SSLCompression off
  SSLCertificateFile /etc/apache2/ssl/example.com.crt
  SSLCertificateKeyFile /etc/apache2/ssl/private/example.com.key

  <Directory "/var/www/html">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
  </Directory>
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

Responder1

Eu resolvi o problema. Aqui está o que está acontecendo. /etc/apache2/apache2.conf inclui uma chamada para qualquer arquivo de configuração que possua links simbólicos em /etc/apache2/sites-enabled. Como havia um link simbólico nesse diretório apontando para /etc/apache2/sites-available/000-default.conf, esse último arquivo de configuração estava sendo carregado e substituiu os blocos e diretivas em meu arquivo vhosts.conf. Depois que excluí esse link simbólico, minhas configurações de vhosts.conf entraram em vigor. A lição para mim foi que qualquer arquivo que tenha um link simbólico habilitado para sites será habilitado.

informação relacionada