Atualmente, a opção letsencrypt
/ certbot
with --apache
não funciona como esperado. Existem algumas mudanças que devem ser aplicadas ao mecanismo do CertBot que interagem com o Apache, mas elas não são aplicadas ainda. Não encontrei o artigo exato que li em janeiro de 2018, quando encontrei este problema.
Você pode usar letsencrypt
/ certbot
com a opção certonly
. Com essa opção, a ferramenta iniciará seu próprio servidor da Web temporal para gerar os arquivos de certificado. As portas 80
e 443
devem estar abertas no seu firewall.
E você deve parar o Apache por um tempo. Infelizmente, você deve fazer isso quando você renew
dos certificados.
sudo service apache2 stop # Ubuntu 14.04
sudo systemctl stop apache2.service # Ubuntu 16.04 and above
sudo letsencrypt certonly --rsa-key-size 4096 --email [email protected] -d example.com -d www.example.com -d another.example.com
# Select the option: Automatically use temporary web server (standalone)
sudo service apache2 start # Ubuntu 14.04
sudo systemctl start apache2.service # Ubuntu 16.04 and above
Depois, você precisa editar manualmente o arquivo de configuração do seu host virtual. Aqui está um exemplo com redirecionamento permanente de HTTP para HTTPS (substitua example.com
pelo seu FQDN):
<VirtualHost *:80>
ServerName example.com
# Redirect Requests to HTTPS
Redirect permanent / https://example.com/
ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName example.com
ServerAdmin [email protected]
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
DocumentRoot /var/www/html
<Directory /var/www/html>
# Conf directives...
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com.ssl.error.log
CustomLog ${APACHE_LOG_DIR}/example.com.ssl.access.log combined
</VirtualHost>
</IfModule>
Ative o módulo SSL para o Apache e reinicie-o novamente.
Referências:
Espero que esta ajuda!