Pesquisa de site

Como redirecionar HTTP para HTTPS no Apache


HTTP (Hyper Text Transfer Protocol) é um protocolo popular e também fundamental para comunicação de dados na World Wide Web (WWW ); normalmente entre um navegador da web e o servidor que armazena arquivos da web. Considerando que HTTPS é a versão segura do HTTP, onde o ‘S’ no final significa ‘Seguro’.

Usando HTTPS, todos os dados entre o seu navegador e o servidor web são criptografados e, portanto, seguros. Este tutorial mostrará como redirecionar HTTP para HTTPS no servidor Apache HTTP no Linux.

Antes de configurar um redirecionamento Apache HTTP para HTTPS para seu domínio, certifique-se de ter o certificado SSL instalado e o mod_rewrite está habilitado no Apache. Para obter mais informações sobre como configurar SSL no Apache, consulte os guias a seguir.

  1. Como criar certificados e chaves SSL autoassinados para Apache
  2. Como instalar o certificado Let's Encrypt SSL no CentOS/RHEL 7
  3. Como instalar o certificado SSL Let's Encrypt no Debian/Ubuntu

Redirecionar HTTP para HTTPS no Apache usando arquivo .htaccess

Para este método, certifique-se de que mod_rewrite esteja habilitado, caso contrário, habilite-o assim em sistemas Ubuntu/Debian.

sudo a2enmod rewrite	[Ubuntu/Debian]

Para usuários CentOS/RHEL, certifique-se de ter a seguinte linha em httpd.conf (suporte para mod_rewrite – habilitado por padrão).

LoadModule rewrite_module modules/mod_rewrite.so

Agora você só precisa editar ou criar o arquivo .htaccess no diretório raiz do seu domínio e adicionar estas linhas para redirecionar http para https.

RewriteEngine On 
RewriteCond %{HTTPS}  !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

Agora, quando um visitante digita http://www.seudominio.com, o servidor redirecionará automaticamente HTTP para HTTPS https://www.seudominio.com.

Redirecionar HTTP para HTTPS no Apache Virtual Host

Além disso, para forçar todo o tráfego da web a usar HTTPS, você também pode configurar seu arquivo de host virtual. Normalmente, há duas seções importantes nas configurações de um host virtual se um certificado SSL estiver habilitado; o primeiro contém configurações para a porta não segura 80.

A segunda é para a porta segura 443. Para redirecionar HTTP para HTTPS para todas as páginas do seu site, primeiro abra o arquivo host virtual apropriado. Em seguida, modifique-o adicionando a configuração abaixo.

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName www.yourdomain.com
   Redirect / https://www.yourdomain.com
</VirtualHost>

<VirtualHost _default_:443>
   ServerName www.yourdomain.com
   DocumentRoot /usr/local/apache2/htdocs
   SSLEngine On
etc...
</VirtualHost>

Salve e feche o arquivo e reinicie o servidor HTTP assim.

sudo systemctl restart apache2     [Ubuntu/Debian]
sudo systemctl restart httpd	     [RHEL/CentOS]

Enquanto o é a solução mais recomendada por ser mais simples e segura.

Você pode gostar de ler esta variedade útil de artigos sobre proteção de segurança do servidor Apache HTTP:

  1. 25 truques úteis do Apache ‘.htaccess’ para proteger e personalizar sites
  2. Como proteger diretórios da Web com senha no Apache usando arquivo .htaccess
  3. Como ocultar o número da versão do Apache e outras informações confidenciais
  4. Proteja o Apache contra ataques de força bruta ou DDoS usando Mod_Security e Mod_evasive

Isso é tudo! Para compartilhar qualquer opinião sobre este guia, use o formulário de feedback abaixo. E lembre-se de ficar sempre conectado ao linux-console.net.