Configurar certificado SSL auto-assinado para o Apache (HTTPS)
Tags: ssl apache httpsEm determinadas ocasiões, pode ser necessário que exista uma camada de criptografia, que garanta a segurança das informações nas soluções WEB. Podemos citar por exemplo, a utilização de notificações push no navegar e a comunicação com os serviços da AWS. A utilização desses recursos forçam a necessidade de existir essa camada.
Certificados SSL
Para resolver o problema contextualizado, precisamos gerar um certificado SSL. Esse certificado vai adicionar essa camada de criptografia ao protocolo HTTP, garantindo que caso alguém intercepte as requisções, não consiga entender o seu conteúdo (HTTPS).
Será apresentado, como utilizar certificados SSL auto-assinados para ambiente de homologação. Esse tipo de certificado SSL, é gerado para um domínio fictício e que somente existe localmente (vhost). Portanto, deve ser evitado em produção.
Para iniciar, o OpenSSL precisa estar instalado na máquina. Rode o comando abaixo, se der erro, ele não está instalado:
openssl version
Com o OpenSSL devidamente instalado para o seu correspondente sistema operacional:
- Abra o CMD ou o Git Bash, e vá para o diretório de sua preferência, onde ficarão os arquivos do precesso;
- Crie a chave privada (.key) e o pedido de assinatura de certificado (.csr), com o seguinte comando:
openssl req -newkey rsa:2048 -nodes -keyout nome-solucao.key -out nome-solucao.csr
- Nesse momento, será solicitado algumas informações. Exemplo de preenchimento:
- Crie o certificado com o seguinte comando:
openssl x509 -signkey nome-solucao.key -in nome-solucao.csr -req -days 365 -out nome-solucao.crt
Ao terminar esse processo, no diretório que os comandos foram executados deve existir três arquivos:
Habilitar o SSL no Apache e configurar o certificado no vhost
Para que o Apache entenda nosso certificado, precisamos habilitar o módulo de SSL e colocar instruções no vhost para localizar o certificado gerado.
Levando em consideração que o Apache está instalado em "C:\xampp\apache\":
- Abra o arquivo "httpd.conf" do Apache, localizado em "C:\xampp\apache\conf\";
- Procure pela linha "LoadModule ssl_module modules/mod_ssl.so", e caso tenha um cerquilha (#) no início dessa linha, remover;
- Mova os três arquivos gerados no processo anterior, para as suas respectivas pastas no Apache:
- "nome-solucao.key", deve ser movido para "C:\xampp\apache\conf\ssl.key";
- "nome-solucao.csr", deve ser movido para "C:\xampp\apache\conf\ssl.csr";
- "nome-solucao.crt", deve ser movido para "C:\xampp\apache\conf\ssl.crt".
- Abra o arquivo "httpd-vhosts.conf" do Apache, localizado em "C:\xampp\apache\conf\extra\". Encontre o seu vhost;
- Mude a porta de 80 para 443, e adicione as seguintes linhas no vhost:
SSLEngine On SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/nome-solucao.crt" SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/nome-solucao.key"
- No final, o seu vhost deve estar similiar ao demonstrado abaixo:
Agora basta reiniciar o Apache, e será possível acessar o seu vhost utilizando HTTPS.
Outros Artigos
Nenhum artigo relacionado.