Pré-requisitos
- Crie uma entrada do tipo A no seu servidor DNS:
*.seudominio.com.br
- Instale o Certbot : https://certbot.eff.org
Instalar o Certbot
Adicionar o repositório
sudo add-apt-repository ppa:certbot/certbot
Atualizar pacotes
sudo apt update
Instalar o certbot
sudo apt install certbot
Gerar o certificado Wildcard
- Execute o seguinte comando:
sudo certbot --server https://acme-v02.api.letsencrypt.org/directory -d seudominio.com.br,*.seudominio.com.br --manual --preferred-challenges dns-01 certonly
- Outra versão do comando:
sudo certbot certonly --manual -d *.example.com -d example.com --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
A saída que teremos é a seguinte:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
sdsdfj2812121m2n1nsmnsmnxzmxnzmxnzmxnzmxnzmxnzmxzx
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
Neste passo, você precisa criar um registro DNS TXT com o nome _acme-challenge e o valor o que segue nas instruções. Espere pelo menos um minuto para confirmar a alteração e pressione ENTER.
A saída deverá ser a seguinte:
Press Enter to Continue
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2019-02-27. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Parabéns! Seu certificado wildcard foi gerado. Você poderá utilizar este certificado com qualquer subdomínio que você criar para seu domínio.
Agora você precisa configurar manualmente o virtual host do Apache com o caminho correto para o certificado.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/www.example.com/public_html
<Directory /var/www/www.example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Agora verifique a sintaxe de sua configuração:
sudo apache2ctl configtest
Uma vez que a sintaxe do arquivo está correta, reinicie o Apache para carregar a nova configuração:
sudo systemctl reload apache2.service
Certbot agora consegue encontrar o correto VirtualHost e atualiza-lo.
Exemplo de arquivo de configuração do apache se-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
# SERVER
ServerAdmin [email protected]
ServerName aspineasy.com.br
#ServerAlias *.aspineasy.com.br
# TOMCAT PROXY
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
# LOG
ErrorLog /var/log/apache2/error-aspineasy.log
CustomLog /var/log/apache2/access-aspineasy.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =aspineasy.com.br
#RewriteCond %{SERVER_NAME} =*.aspineasy.com.br [OR]
#RewriteCond %{SERVER_NAME} =oeco.aspineasy.com.br [OR]
#RewriteCond %{SERVER_NAME} =jornalintegracao.aspineasy.com.br [OR]
#RewriteCond %{SERVER_NAME} =oimparcial.aspineasy.com.br [OR]
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/aspineasy.com.br-0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/aspineasy.com.br-0001/privkey.pem
</VirtualHost>
</IfModule>
https://mindnotes.sh/letsencrypt-wildcard/