Nesse post intitulado “Apache: Habilitar SSL no Debian, Ubuntu e Derivados” iremos ver como configurar SSL/TLS dentro do nosso servidor Web.
#1 Antes de tudo é preciso saber se já tem o apache instalado; se não tiver, execute: dnf install httpd -y
[root@oracle86 ~]# dnf install apache2 -y
#2 Agora, copie o arquivo default-ssl.conf dapasta /etc/apache2/sites-available/ para a /etc/apache2/sites-enabled/
Execute: cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/
root@debian11VM:~# cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/
#3 Ative o módulo com o comando a2enmod ssl
root@debian11VM:~# a2enmod ssl
O novo site também precisa ser ativado
root@debian11VM:~# a2ensite default-ssl
#4 Libere no firewalld a porta 443 executando firewall-cmd --add-port=443/tcp
[root@oracle86 ~]# firewall-cmd --add-port=443/tcp
Se estiver usando o ufw proceda de acordo para liberar a porta
#5 reinicie o apache com systemctl restart httpd
[root@oracle86 ~]# systemctl restart apache2.service
Nesse momento, basta abrir o navegador e digitar: https://seu_ip
Outras Configurações
Temos alguns artigos falando sobre o uso do openssl:
- OpenSSL: Veja os Comandos Mais Usados no Dia a Dia
- OpenSSL: Converter um Tipo de Certificado em Outro Formato
Os comandos acima já farão funcionar a conexão criptografada do nosso apache, mas, se quiser refinar, criando seu próprio certificado, poderá proceder com os passados abaixo:
#1 Seguindo os dois links acima, crie um certificado e uma chave do certificado
#2 Dentro da pasta /etc/ssj já há diversos certificados e chaves, por isso o https do apache funciona logo assim que instalamos o mod_ssl, pois ele pega certificados daí. Mas podemos ter nossos próprios certificados. Crie uma pasta chamada privado em /etc/ssl e mude as permissões dela para 700
mkdir -p /etc/ssl/privado
chmod 700 /etc/ssl/privado
#3 coloque dentro dessa pasta o certificado que você criou acima. No meu caso ficou:
/etc/ssl/privado/certificado.crt e /etc/ssl/privado/privado.key
#4 A próxima coisa a fazer é configurar os hosts virtuais para exibir o novo certificado.
Execute: sudo vi /etc/apache2/sites-enabled/default-ssl.conf
Coloque dentro desse arquivo o seguinte conteúdo:
<VirtualHost *:443> DocumentRoot /var/www/html ServerName www.exemplo.com SSLEngine on SSLCertificateFile /etc/ssl/privado/certificado.crt SSLCertificateKeyFile /etc/ssl/privado/privado.key </VirtualHost>
Substitua www.exemplo.com pelo domínio do seu site.
Talvez já exista o vhost <VirtualHost *:443> dentro de ssl.conf, então apenas acrescente as linhas faltantes.
Reinicie o apache
[root@oracle86 ~]# systemctl restart apache2
Redirecionando os Acessos para HTTPs
Dentro de /etc/httpd/conf/httpd.conf acrescente a linha redirect…
<VirtualHost *:80> ServerName www.exemplo.com Redirect "/" "https://www.exemplo.com/" </VirtualHost>
Agora, qualquer usuário que acessar http://www.exemplo.com será redirecionado automaticamente para https://www.exemplo.com
Reinicie o apache
root@debian11VM:~# systemctl restart httpd
Comment on “Apache: Habilitar SSL no Debian, Ubuntu e Derivados”