Por padrão, a instalação básica do Apache não contempla a ativação do protocolo HTTPS, somente o HTTP é suportado. Entretanto, muitas vezes, necessitamos utilizar, por medida de segurança, o protocolo HTTPS.
O protocolo HTTPS, “adiciona” uma camada extra de segurança por meio da criptografia fornecida pelo SSL, que faz uso de criptografia assimétrica e requer a utilização de um par de chaves (Pública e Privada). Desta forma, para habilitar o modulo ssl, e consequentemente o protocolo HHPS, execute passos descritos a seguir
Primeiro Passo: Ativando o suporte ao SSL
Para ativar o modulo SSL do Apache podemos utilizar o comando:
sudo a2enmod ssl
Em seguida precisamos reiniciar o Daemon do Apache
sudo service apache2 restart
Para verificarmos se o o suporte foi habilitado, podemos executar o comando:
sudo lsof -i | grep apache | grep -i https
Caso o procedimento tenha funcionado corretamente, o ultimo comando deve gerar uma saída semelhante a apresentada a baixo:
apache2 13197 root 6u IPv6 2667199 0t0 TCP *:https (LISTEN) apache2 13205 www-data 6u IPv6 2667199 0t0 TCP *:https (LISTEN) apache2 13206 www-data 6u IPv6 2667199 0t0 TCP *:https (LISTEN) apache2 13207 www-data 6u IPv6 2667199 0t0 TCP *:https (LISTEN) apache2 13208 www-data 6u IPv6 2667199 0t0 TCP *:https (LISTEN) apache2 13209 www-data 6u IPv6 2667199 0t0 TCP *:https (LISTEN)
Ou seja, o daemon do Apache já está “escutando” nas porta associada do protocolo HTTPS (443/TCP)
Segundo Passo: Gerar e ativar as chaves públicas e privadas
O serviço associado ao protocolo HTTPS só irá funcionar, no Apache, depois que (i) gerarmos o par de chaves (privada e pública) utilizada na criptografia assimétrica, (ii) habilitarmos o arquivo de configuração do site “default-ssl” e finalmente recarregarmos as configurações do Apache. Para executar estes procedimentos execute os comandos abaixo:
sudo make-ssl-cert generate-default-snakeoil --force-overwrite sudo a2ensite default-ssl sudo service apache2 reload
Para verificar se o procedimento foi executado com sucesso, podemos utilizar o comando:
sudo lsof -i | grep apache
O qual deve apresentar uma saída semelhante à:
apache2 8772 root 3u IPv6 36901 TCP *:www (LISTEN) apache2 8772 root 5r IPv6 37310 TCP *:https (LISTEN) apache2 8828 www-data 3u IPv6 36901 TCP *:www (LISTEN) apache2 8828 www-data 5u IPv6 37310 TCP *:https (LISTEN) apache2 8829 www-data 3u IPv6 36901 TCP *:www (LISTEN) apache2 8829 www-data 5u IPv6 37310 TCP *:https (LISTEN) apache2 8830 www-data 3u IPv6 36901 TCP *:www (LISTEN) apache2 8830 www-data 5u IPv6 37310 TCP *:https (LISTEN) apache2 8831 www-data 3u IPv6 36901 TCP *:www (LISTEN) apache2 8831 www-data 5u IPv6 37310 TCP *:https (LISTEN) apache2 8832 www-data 3u IPv6 36901 TCP *:www (LISTEN) apache2 8832 www-data 5u IPv6 37310 TCP *:https (LISTEN)
Finalmente, para verificar se o serviço está funcionamento corretamente, abra um navegador e tente acessar o serviço “https” na máquina que acaba de ser configurada.