Neste artigo, exploraremos o processo de instalação e configuração certbot em um servidor Linux. Explicaremos em detalhes como obter um certificado Let's Encrypt SSL/TLS para seu domínio. Também descreveremos como instalá-lo em um servidor web (como Nginx ou Apache) e configurar renovações automáticas de certificado para garantir uma conexão segura contínua com seu recurso web.
certbot é uma ferramenta gratuita e de código aberto projetada para aquisição e renovação automática de Certificados SSL/TLS. Ele desempenha um papel crucial na proteção da conexão entre o servidor e o cliente, protegendo os dados contra acesso não autorizado. O Certbot simplifica o processo de instalação e renovação de um certificado SSL. O certificado não apenas aumenta a segurança, mas também aumenta a confiança do usuário em seu recurso da web, melhorando assim a reputação do site e suas classificações em mecanismos de busca.
Instalando o Certbot
O Certbot está incluído na maioria das distribuições por padrão, portanto, para instalá-lo em Debian / Ubuntu sistemas, você só precisa atualizar a lista de pacotes:
apt update
Em seguida, inicie o processo de instalação:
apt install certbot
O Certbot suporta plugins que facilitam a instalação e configuração do certificado para um servidor web. Para instalar esses plugins, use o comando correspondente:
apt install certbot python3-certbot-nginx # for Nginx
apt install certbot python3-certbot-apache # for Apache
O processo de instalação para Red Hat sistemas (como RHEL, CentOS, Fedora) é um pouco diferente. Inicialmente, você precisa adicionar o repositório EPEL:
yum install epel-release
Em seguida, instale a ferramenta:
yum install certbot
Da mesma forma, há uma opção para selecionar um plugin para um servidor web específico:
yum install python3-certbot-nginx # for Nginx
yum install python3-certbot-apache # for Apache
Após a instalação, você pode prosseguir imediatamente para obter o certificado.
Obtendo um certificado SSL
Nesta seção, discutiremos o processo de obtenção de um certificado independentemente de um servidor web específico, seguido pela descrição do processo de instalação do certificado para Nginx e Apache. No entanto, é essencial primeiro entender a sintaxe e a funcionalidade do programa. Ele aparece da seguinte forma:
certbot command option -d domain
Os principais comandos incluem:
certbot certonly - Recupera o certificado, mas não o instala.certbot certificates - Este comando exibe uma lista de todos os certificados instalados.certbot renew - Estende o certificado existente.certbot revoke - Revoga o certificado existente.certbot delete - Exclui o certificado existente.
As opções mais comumente usadas são:
--nginx - Usa scripts de configuração Nginx para verificação de domínio.--apache - Usa scripts de configuração do Apache para verificação de domínio.-d - Uma lista de domínios para os quais o certificado é solicitado.--standalone - Usa o modo autônomo para verificação de domínio.--manual - Executa verificação manual de domínio.
Este é apenas um exemplo dos comandos e opções mais frequentes. Você pode se familiarizar com a lista completa de capacidades do programa na seção de ajuda:
certbot –help
Prosseguimos agora para obter o certificado. Como exemplo, obteremos um certificado para um servidor virtual para um domínio de terceiro nível gratuito como yourusername.pserver.space
Primeiro, você precisa digitar o comando:
certbot certonly
Em resposta, o utilitário solicitará que você escolha um método para verificar a propriedade do domínio:
A primeira opção é conveniente se você não tiver um servidor web configurado ou não quiser fazer alterações em um existente. Este método cria um servidor web temporário para confirmar seu direito ao domínio. É ideal para uma configuração simples e rápida. Ao escolher este método, é importante manter a porta 80 livre.
A segunda opção é preferível se você já tem um servidor web operando e quer usá-lo para verificar o direito ao domínio. O Certbot coloca arquivos especiais em uma pasta no seu servidor, que são então verificados pelo centro de certificação.
Escolhemos a primeira opção e clicamos em next. Nesta etapa, você precisará:
- Insira um endereço de e-mail;
- Concordar com os termos de serviço;
- Aceitar ou recusar receber e-mails em nome da empresa e seus parceiros;
- Especifique o nome de domínio para o qual o certificado é emitido.
Após concluir o processo de emissão do certificado com a ferramenta Certbot, ela indicará o caminho para o diretório onde o certificado emitido e os dados da sua conta estão armazenados:
Só falta você vincular o certificado obtido ao serviço requerido.
Instalando o certificado para Nginx ou Apache
Esta seção pressupõe que certas condições fundamentais foram atendidas:
- Você já instalou e configurou um servidor web, seja Nginx ou Apache. Ele deve ser acessível pela internet através do nome de domínio para o qual você pretende obter o certificado;
- Durante a instalação da ferramenta, você também instalou um plugin para Nginx ou Apache usando o comando apropriado;
- O firewall permite conexões nas portas 80 e 443. Se essas portas estiverem fechadas para conexões, o serviço ficará indisponível para conexões de entrada. Para mais detalhes sobre a operação do firewall, discutimos isso no artigo sobre configurando um firewall no Linux.
Uma vez que todas as condições forem satisfeitas, você pode prosseguir diretamente para a emissão do certificado. Consideraremos o processo de obtenção de um certificado SSL em um servidor usando Nginx como exemplo. No entanto, se você estiver usando um servidor web Apache, o processo é completamente idêntico.
Para obter o certificado, você precisa digitar o comando:
certbot --nginx # for Nginx
certbot --apache # for Apache
Em resposta, a ferramenta solicitará: um endereço de e-mail, consentimento com os termos de uso do serviço Let's Encrypt e permissão para enviar e-mails em nome do serviço e seus parceiros.
Depois disso, você precisará especificar o nome de domínio para o qual o certificado é emitido. O Certbot pode determinar automaticamente o domínio se ele foi especificado no nome do servidor campo para nginx configuração ou Nome do servidor e ServerAliases pela apache. Se não for especificado, o programa notificará você e pedirá que você insira o nome de domínio manualmente. Então, o utilitário perguntará se deseja habilitar o redirecionamento de solicitações do protocolo HTTP para HTTPS. Para configurar o redirecionamento automático, você deve escolher a segunda opção:
Depois de algum tempo, o Certbot informará você sobre a aquisição bem-sucedida do certificado para o domínio especificado. Deste ponto em diante, todas as conexões de entrada serão redirecionadas da porta 80 para 443. A ferramenta exibirá os diretórios nos quais você pode encontrar todos os dados do certificado e os detalhes da conta Let's Encrypt:
A mensagem também especificará o período de validade do certificado obtido e opções importantes para gerenciar todos os certificados ativos:
- certamente. Esta opção é usada para obter ou atualizar o certificado sem configuração automática do servidor web. O Certbot apenas solicitará ou atualizará o certificado, mas não fará nenhuma alteração automática na configuração do servidor. Anteriormente, usávamos esta opção para obter um certificado sem estar vinculado a um servidor web.
- renovar é usado para a renovação automática de todos os certificados que foram obtidos através do Certbot e estão dentro do seu período de validade. O programa verificará todos os certificados e, se algum deles expirar em 30 dias ou menos, ele será renovado automaticamente.
A seguir nas instruções, discutiremos como configurar a renovação automática de certificados sem intervenção do usuário a cada três meses.
Renovação automática de certificado no Certbot
Para Debian/Ubuntu
Ao usar esses sistemas operacionais, o Certbot adiciona automaticamente um script à lista de tarefas para a renovação automática de certificados instalados. Você pode verificar a funcionalidade do script com o seguinte comando:
systemctl status certbot.timer
A resposta exibirá o status do serviço, bem como o diretório que contém o arquivo de configuração. Você pode abrir isso usando qualquer editor de texto. Se você não tem experiência com editores de texto no Linux, recomendamos que se familiarize com nossa visão geral das soluções mais populares. Neste caso, usaremos nano:
nano /lib/systemd/system/certbot.timer
Todos os parâmetros importantes são destacados:
- O horário indica que o serviço funcionará duas vezes por dia, às 00:00 e às 12:00;
- Um segundo valor indica um atraso aleatório em segundos que será adicionado ao início do timer. Neste caso, são 43,200 segundos (12 horas), o que torna o lançamento mais aleatório e espalha a carga;
- Este parâmetro garante que, se o temporizador for executado durante o desligamento do sistema, ele será ativado imediatamente na inicialização.
Você também pode executar uma verificação forçada de renovação de certificado com o comando:
certbot renew --dry-run
Usando este comando, os certificados não serão atualizados. Em vez disso, a ferramenta executará ações semelhantes à obtenção de um certificado após sua expiração. Dessa forma, você pode garantir a funcionalidade do serviço em relação à renovação automática.
Para CentOS, Fedora e outros
O processo de habilitar atualizações automáticas em sistemas da família Red Hat difere um pouco. Ao contrário do Debian/Ubuntu, para CentOS e outros sistemas, você precisa adicionar manualmente uma tarefa ao agendador. Para isso, usaremos o cron ferramenta:
crontab -e
Em seguida, no arquivo que abrir, adicione a seguinte linha:
0 12 * * * /usr/bin/certbot renew --quiet
Vamos analisar os principais argumentos do comando:
- O tempo de execução. Neste caso, o comando será executado automaticamente às 12:00 todos os dias;
- O comando para renovar certificados SSL/TLS usando Certbot;
- As --quieto O sinalizador suprime a saída, tornando o processo mais oculto e menos intrusivo nos logs ou na exibição do sistema.
Depois de adicionar o comando, você precisa salvar as alterações no arquivo.
Assim como no Debian/Ubuntu, você também pode iniciar uma verificação forçada de renovações de certificados:
certbot renew --dry-run
O resultado de uma execução bem-sucedida do comando é o seguinte:
Conclusão
Exploramos o processo abrangente de instalação e configuração do Certbot em um servidor Linux. Seguindo as instruções fornecidas, você pode obter com sucesso um certificado SSL/TLS da Let's Encrypt, instalá-lo em seu servidor web e configurar a renovação automática para garantir proteção contínua e maior confiança em seu recurso web. Com o Certbot, você pode criar facilmente um ambiente confiável e seguro para os usuários.