Tabela de Conteúdos

4.1.2 Apache2 + Ssl

A adição do suporte ssl ao servidor web permite o restabelecimento de ligação seguras e encriptadas entre o servidor e o cliente. Deste modo, é possível trocar dados confidenciais, como passwords, com a certeza que esta não será capturada por terceiros.

É assim possível usar as ligações seguras como base para a implementação de outros serviços como, por exemplo, um serviço webmail.

Configuração

Em primeiro lugar deve ser ativado o módulo ssl:

root@server:~# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  systemctl restart apache2

Durante a instalação do apache2 é criada uma configuração para acesso seguro (https). No entanto, esta configuração deverá ser alterada para incluir os 3.5.1 Certificados Auto-Assinados ou os certificados 3.5.2 Certificados LetsEncrypt gerados previamente . A configuração é guardada no ficheiro /etc/apache2/sites-available/default-ssl.conf:

# [...]

                #   SSL Engine Switch:
                #   Enable/Disable SSL for this virtual host.
                SSLEngine on

                #   A self-signed (snakeoil) certificate can be created by inst$
                #   the ssl-cert package. See
                #   /usr/share/doc/apache2/README.Debian.gz for more info.
                #   If both key and certificate are stored in the same file, on$
                #   SSLCertificateFile directive is needed.
                # SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
                # SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

                # Certificados Let's Encrypt:
                #SSLCertificateFile    /etc/letsencrypt/live/home.example.com/cert.pem
                #SSLCertificateKeyFile /etc/letsencrypt/live/home.example.com/privkey.pem

                # Certificados auto-assinados:
                SSLCertificateFile     /etc/ssl/certs/server.crt
                SSLCertificateKeyFile  /etc/ssl/private/server.key

# [...]

O novo site também deve ser ativado:

root@server:~# a2ensite default-ssl
Enabling site default-ssl.
To activate the new configuration, you need to run:
  systemctl reload apache2

Verificar que a sintaxe do ficheiro de configuração está correta:

root@server:~# apachectl -t
Syntax OK

Finalmente, reiniciar o serviço:

root@server:~# systemctl restart apache2

Verificação

Num browser, inserir o endereço do servidor (https://192.168.1.100). Após o aviso sobre o certificado auto assinado, deverá aparecer uma página:

Caso tenhamos usado um certificado auto-assinado, o browser alertará para a existência de um certificado auto-assinado que, obviamente, não poderá reconhecer. Para evitar este alerta no futuro, basta adicionar o certificado à lista de exceções do browser.

Referências