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.
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
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.