Para essa instalação, é pré-requisito que você tenha instalado primeiro o Apache. Após instalar o apache e configurá-lo vamos para o Letsencypt. Vou deixar o link da instalação do Apache, quando terminar volte aqui para instalar o Let’s Encrypt.
# portsnap fetch extract # pkg update
# pkg install py39-certbot-2.1.0,1 py39-certbot-apache-2.1.0
OBS: Nos podemos gerar o certificado para um único domínio ou para vários domínios, abaixo deixo os dois tipos de comandos:
– Para um único domínio:
# certbot certonly --webroot -w /usr/local/www/pasta_do_meu_vhost -d SEU_DOMINIO_VEM_AQUI
– Para vários domínios:
# certbot certonly --webroot -w /usr/local/www/pasta_do_meu_vhost -d SEU_DOMINIO_VEM_AQUI -d WWW.SEU_DOMINIO_VEM_AQUI
OBS: Após a execução do comando acima, você terá que informar um e-mail válido:
– Ao final você recebera uma mensagem de sucesso como essa:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for meu_domínio Successfully received certificate. Certificate is saved at: /usr/local/etc/letsencrypt/live/meu_domínio/fullchain.pem Key is saved at: /usr/local/etc/letsencrypt/live/meu_domínio/privkey.pem This certificate expires on 2023-06-06. These files will be updated when the certificate renews. NEXT STEPS: - The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-certbot: é o comando principal da ferramenta Certbot, usada para obter, renovar e gerenciar certificados SSL/TLS gratuitos.
-certonly: é uma opção que especifica que queremos apenas obter um novo certificado sem instalar automaticamente em um servidor web, o que nos permite controlar manualmente a instalação do certificado.
–webroot: é uma opção que especifica que queremos usar o método de autenticação Webroot para obter o certificado. O método de autenticação Webroot permite que o Certbot obtenha uma confirmação de que você possui o controle do domínio especificado, colocando um arquivo de desafio temporário em um diretório da sua aplicação web.
-w /usr/local/www/pasta_do_seu_vhost: é a opção que especifica o caminho do diretório raiz da sua aplicação web que o Certbot irá usar para colocar o arquivo de desafio temporário. É importante que o diretório raiz da sua aplicação web esteja configurado corretamente para que o Certbot possa colocar o arquivo de desafio temporário e autenticar o domínio.
-d SEU_DOMINIO.COM.BR: é a opção que especifica o nome de domínio para o qual você deseja obter um certificado SSL/TLS.
-d WWW.SEU_DOMINIO.COM.BR: é outra opção que especifica um segundo nome de domínio para o qual você deseja obter um certificado SSL/TLS.
-v: é uma opção que especifica que você deseja executar o comando em modo verbose, o que significa que o Certbot exibirá mais informações de depuração durante o processo de obtenção do certificado.
LoadModule ssl_module libexec/apache24/mod_ssl.so
- Após ativar o módulo do Apache, pesquise pela linha “Liesten” e altere a porta de 80 para 443, tudo isso dentro do arquivo /usr/local/etc/apache24/httpd.conf:
Listen 443
# certbot renew --reuse-key Saving debug log to /var/log/letsencrypt/letsencrypt.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processing /usr/local/etc/letsencrypt/renewal/mundobsd.com.br.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Renewing an existing certificate for mundobsd.com.br and www.mundobsd.com.br - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations, all renewals succeeded: /usr/local/etc/letsencrypt/live/mundobsd.com.br/fullchain.pem (success) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OBS: Este comando irá renovar automaticamente todos os certificados Let's Encrypt que estão prestes a expirar em menos de 30 dias.
# certbot certonly --cert-name meudominio.com
OBS: Este comando irá renovar o certificado Let's Encrypt para o domínio especificado. Certifique-se de que o domínio esteja configurado corretamente e de que o diretório webroot especificado no comando esteja correto.
# openssl x509 -noout -dates -in /etc/letsencrypt/live/meudominio.com/fullchain.pem
OBS: É importante lembrar que você precisa renovar seu certificado Let's Encrypt a cada 3 meses. Para evitar interrupções no seu site, você pode configurar uma tarefa cron para renovar automaticamente o certificado antes do vencimento.
<VirtualHost 10.0.0.10:443> Protocols h2 h2c http/1.1 Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" ### Configurações do certificado SSLEngine On SSLCertificateFile /usr/local/etc/letsencrypt/live/seu_site.com.br/fullchain.pem SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/seu_site.com.br/privkey.pem #### ServerAdmin seu_email@gmail.com ServerName exemple.com.br ServerAlias www.exemple.com.br DocumentRoot "/usr/local/www/seu_site/" ErrorLog "/var/log/seu_site.erro_log" CustomLog "/var/log/seu_site.access_log" common <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" </IfModule> Alias /seu_site /usr/local/www/seu_site <Directory "/usr/local/www/seu_site"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>