Certificação Digital no Linux - Apache2
Nesse artigo iremos explicar o conceito básico de certificação digital, mostraremos como se gera uma requisição de certificado, chaves privadas e públicas e configurações https do Apache2 para que nosso site possua certificado digital.
Parte 10: Criando um redirecionamento automático para HTTPS
Algumas vezes se faz necessário que nosso site seja exclusivamente acesso via HTTPS, com isso, quando acesso nosso site via HTTP normalmente, ele não irá mostrar o conteúdo esperado. Alguns clientes podem reclamar da indisponibilidade do site, ou ainda o não funcionamento correto do mesmo, pois ele (cliente), não consegue acessar o conteúdo do site.
Você poderá indicar e explicar para todos seus clientes que ele além de usar HTTP, terá que usar HTTPS, e o porquê disso, ou simplesmente criar um redirecionamento automático para HTTPS, que é o que irei mostrar agora.
Assim como temos uma VIRTUALHOST para SSL, temos um VIRTUALHOST não SSL, ou seja, acessado pela porta 80. Os dois, mesmo tendo o mesmo nome, podem ser sites distintos, ou terem conteúdo distinto, o que se explica facilmente em uma INTRANET e INTERNET, seu site dentro da empresa possuí um conteúdo e fora outro.
Entrando no arquivo de configuração:
http-vhost.conf
Todas as configurações são padrões, não vou entrar em detalhes pois não é o nosos foco nesse momento VHOSTS. Procure pela entrada do "Virtual Host" referente ao seu site, ou crie uma nos moldes passados abaixo:
Você pode adicionar as linhas acima em qualquer lugar do seu arquivo de configuração, ou apenas editar uma que já exista.
Pronto, salve e reinicie o seu Apache, quando você acessar http://www.seusite.com.br, ele irá automaticamente redirecionar para httpS://www.seusite.com.br.
Você poderá indicar e explicar para todos seus clientes que ele além de usar HTTP, terá que usar HTTPS, e o porquê disso, ou simplesmente criar um redirecionamento automático para HTTPS, que é o que irei mostrar agora.
Assim como temos uma VIRTUALHOST para SSL, temos um VIRTUALHOST não SSL, ou seja, acessado pela porta 80. Os dois, mesmo tendo o mesmo nome, podem ser sites distintos, ou terem conteúdo distinto, o que se explica facilmente em uma INTRANET e INTERNET, seu site dentro da empresa possuí um conteúdo e fora outro.
Entrando no arquivo de configuração:
http-vhost.conf
Todas as configurações são padrões, não vou entrar em detalhes pois não é o nosos foco nesse momento VHOSTS. Procure pela entrada do "Virtual Host" referente ao seu site, ou crie uma nos moldes passados abaixo:
(...)
<VirtualHost IPDOSEUSITE:80>
ServerAdmin suporte@bruno.com.br - E-mail para administração
DocumentRoot "/srv/www/htdocs/ws" - Diretório onde se encontra seu site, ou apenas um diretório vazio para configuração, caso não exista, criar.
ServerName seusite.com.br - nome pelo qual seu IP responde
Colocar linha abaixo em destaque por favor:
RedirectPermanent / https://seusite.com.br - Linha que redireciona seu site HTTP para seu site HTTPS
ErrorLog "logs/seu_site_error_log" - Log de erro
CustomLog "logs/seu_site_log" common - Log de acesso
</VirtualHost>
(...)
<VirtualHost IPDOSEUSITE:80>
ServerAdmin suporte@bruno.com.br - E-mail para administração
DocumentRoot "/srv/www/htdocs/ws" - Diretório onde se encontra seu site, ou apenas um diretório vazio para configuração, caso não exista, criar.
ServerName seusite.com.br - nome pelo qual seu IP responde
Colocar linha abaixo em destaque por favor:
RedirectPermanent / https://seusite.com.br - Linha que redireciona seu site HTTP para seu site HTTPS
ErrorLog "logs/seu_site_error_log" - Log de erro
CustomLog "logs/seu_site_log" common - Log de acesso
</VirtualHost>
(...)
Você pode adicionar as linhas acima em qualquer lugar do seu arquivo de configuração, ou apenas editar uma que já exista.
Pronto, salve e reinicie o seu Apache, quando você acessar http://www.seusite.com.br, ele irá automaticamente redirecionar para httpS://www.seusite.com.br.
Att.,
Bruno Lima