anúncios

terça-feira, 17 de dezembro de 2019

Configurar certificado Self-Signed SSL no Apache

O que é certificado SSL ?

Certificado SSL é uma maneira de criar uma conexão mais segura criptografando as informações transmitidas entre o cliente e o servidor onde o certificado está instalado. Este certificado ainda exibe informações de identificação do servidor diretamente no browser do usuário.

Certificados SSL normalmente são emitidos por empresas chamadas de Certificate Authorities que verifica os detalhes do servidor, mas também é possível emitir Self-signed SSL certificate.

O presente post explica os procedimentos de como criar self-signed certificate e configurar no Apache com Debian/Ubuntu.

Requisitos:

Ter o Apache instalado e os módulos ssl e mod_rewrite habilitados.

Instalação do Apache e habilitar os módulos ssl e mod_rewrite

$ sudo apt install apache2
$ sudo a2enmod ssl
$ sudo a2enmod rewrite

Reiniciar o serviço Apache

$ sudo systemctl restart apache2

Criar o certificado Self-Signed SSL (não assinado)

$ sudo mkdir /etc/apache2/ssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
O comando acima irá criar dois arquivos apache.key e apache.crt necessários para configurar Apache HTTPS server.
Esse certificado tem validade por 1 ano.
Ao executar o comando acima irá perguntar conforme abaixo:

Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Nome do Estado
Locality Name (eg, city) []:Nome da Cidade
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nome da Empresa fictícia
Organizational Unit Name (eg, section) []:Departamento de TI
Common Name (e.g. server FQDN or YOUR name) []: nome definido no ServerName do Vhost
Email Address []:seu_email@dominio.com.br

Configurar o Apache HTTPS server com certificado SSL no Vhost

$ sudo vim /etc/apache2/sites-available/projeto-ssl.conf

PS: Substituir o destacado em vermelho para o seu cenário de projeto do Vhost
< IfModule mod_ssl.c >
    < VirtualHost _default_:443 >
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html/projeto
        ServerName projeto.local

            RewriteEngine On

        < Directory "/var/www/html/projeto" >
            Options None
            Options +FollowSymlinks
            AllowOverride All
        < /Directory >

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on

        SSLCertificateFile    /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key

        < FilesMatch "\.(cgi|shtml|phtml|php)$" >
                SSLOptions +StdEnvVars
        < /FilesMatch >
        < Directory /usr/lib/cgi-bin >
                SSLOptions +StdEnvVars
        < /Directory >

        BrowserMatch "MSIE [2-6]" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

    < /VirtualHost >
< /IfModule >
Ativar o Vhost

$ sudo a2ensite projeto-ssl.conf

Reiniciar o Apache

$ sudo systemctl restart apache2

Adicionar o Vhost no arquivo /etc/hosts

127.0.0.1 projeto.local

No browser acessa https://projeto.local

Feito!

Nenhum comentário:

Postar um comentário