Depois de muitas idas e vindas, lá vai o básico:
1. Add repositorio do certbot:
$ sudo add-apt-repository ppa:certbot/certbot
Se der erro de nao encontrar o add-apt-get-repository:
$ sudo apt-get install software-properties-common
Se der erro:
$ sudo apt install dirmngr
2. Atualizar o repository:
$ sudo apt-get update
3.Instalar o modulo para Apache
$ sudo apt install python-certbot-apache
4. Instalar o certificado:
# certbot run -a webroot -i apache -w /var/www/html -d seusite.com.br -d www.seusite.com.br --debug-challenges
Vai abrir o passo a passo. Somente seguir. Na ultima opcao deixe marcado a opcao para redirecionar o HTTP para HTTPS. Essa funcao vai mudar dois arquivos: o /var/apache2/sites-available/000-default.conf e o /var/apache2/sites-available/000-default-ssl.conf ou semelhante (observa a saida do certbot para ver os arquivos que foram alterados).
No 000-default.conf, no VirtualHost:80, será adicionado o redirecionamento da seguinte forma:
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.seusite.com.br [OR]
RewriteCond %{SERVER_NAME} =seusite.com.br
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Se você tiver alguma RewriteRule no .htaccess do seu site com o [L] no final, remova essa marcação, pois ela faz com que sejam ignoradas regras posteriores, dai não roda a regra do 000-default.conf.
Outra configuração importante que pode ser útil caso esse redirecionamento não funcione, nem o do .htaccess, é configurar o direcionamento para todos os sites no arquivo /etc/apache2/apache2-conf, da seguinte forma:
<VirtualHost *:80>
Redirect permanent / https://www.seusite.com.br/
</VirtualHost>
Feito isso, deve funcionar.