Instalar certificado SSL/TLS digital válido gratuito no Linux

Veremos como instalar um certificado SSL/TLS válido e gratuito para colocar no seu site e criptografar a transmissão dos dados. A instalação utilizada foi a mais padrão possível para se adaptar à maioria das distribuições Linux, porém, apesar de ser padrão, não é básica.

[ Hits: 4.994 ]

Por: Buckminster em 01/04/2023


Instalando



Na própria página oficial do Certbot encontramos instruções de instalação para várias distribuições Linux:
Basta acessar a página, escolher o software (Apache, Nginx, etc) e escolher o sistema operacional e aparecerão instruções de instalação.

Contudo, a instalação aqui demonstrada procurou evitar as sugestões da página oficial, pois a maioria das instalações ali sugeridas pedem primeiro a instalação do Snapd, todavia, não utilizei o Snapd para evitar mais camadas intermediárias, entretanto, caso você queira, utilize o snap.

*** Leia até o final antes de sair executando comandos. ***

Parece complicado, mas a sequência de comandos é curtinha. Optei por dar explicações a mais do que o necessário. Os comandos são utilizados como root ou sudo, se quiser, e devem ser executados na ordem abaixo:

# apt-get update
# apt-get install certbot python3-certbot-apache
# systemctl reload apache2
# apache2ctl configtest

Deverá aparecer Syntax Ok.

Agora antes de continuar dando o último comando veja o arquivo de configuração teu_site.conf (ou 000-default.conf ou com o nome que você deu) em /etc/apache2/sites-available e verifique se o parâmetro ServerName está com www, por exemplo: www.exemplo.com.br.

Se não estiver, coloque e dê um reload no Apache2 e teste abrindo o navegador.

Porém, depois colocando as configurações oferecidas na próxima página provavelmente não terá esse problema.

Agora escolha como você gostaria de executar o Certbot.

Execute o comando abaixo para obter um certificado e fazer com que o Certbot edite sua configuração do apache automaticamente ativando o acesso HTTPS em uma única etapa.

# certbot --apache

Ou apenas obtenha um certificado.

Se você se sentir mais conservador e quiser fazer as alterações na configuração do Apache manualmente, execute este comando:

# certbot certonly --apache
(dê preferência para este comando)

ou:

# certbot certonly --apache -d exemplo.com.br -d www.exemplo.com.br

este comando já indica o domínio/site para o qual deve ser gerado o certificado.

Sugiro FORTEMENTE que utilizem o comando "certbot certonly --apache" porque vamos configurar o Apache2 manualmente, sendo que deixarei um exemplo de arquivo "meu_site.conf" que deverá ficar no diretório /etc/apache2/sites-available.

Com o comando "certbot --apache", sem certonly, a ferramenta realiza automaticamente as configurações dos arquivos e isso trouxe problemas com alguns programas como, por exemplo: o PgAdmin4-web perdeu o acesso a conexão com o servidor. Esse foi um dos softwares que saíram feridos na realização das instalações, mas eles passam bem no momento.

Tal fato aconteceu porque com o comando "certbot --apache" uma das perguntas que aparecem é esta:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Select the appropriate number [1-2] then [enter] (press 'c' to cancel):


Caso escolher a opção 1, para não redirecionar automaticamente todas as conexões para HTTPS você deverá configurar manualmente os redirects nos arquivos, porém, ainda assim o Certbot se mete em algumas outras configurações do Apache.

Caso escolher a opção 2, para redirecionar automaticamente todas as conexões e mesmo ali dizendo que você pode desfazer isso (You can undo this) editando seus arquivos de configurações do Apache, ainda assim não é uma boa opção, pois o Cerbot se entranha no Apache.

EXECUTE o comando:

# certbot certonly --apache

e responda algumas perguntas e forneça um e-mail.

Responda Yes para todas ou, se quiser, responda No para a pergunta que pede se a Electronic Frontier Foundation (EFF) pode compartilhar seu email para receber mensagens dela.

Aparecerá algo parecido com o que está abaixo.

Plugins selected: Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): seu@email.com.br

  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(A)gree/(C)ancel: A

  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom.
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(Y)es/(N)o: Y


Com o comando certbot certonly --apache uma das perguntas que aparecerão a seguir é a pergunta que pede para escolher em qual site gerar o certificado.

O Certbot "pega" as informações do ServerName e do ServerAlias dos arquivos do Apache2, por exemplo:

ServerName www.exemplo.com.br:80
ServerAlias exemplo.com.br exemplo exemplo2

Segundo a documentação do Apache2 a sintaxe do ServerName é:

ServerName fully-qualified-domain-name[:port]

Ou seja, www.exemplo.com.br:80 ou seguido da porta utilizada, porém, na própria documentação diz que se não for colocada a porta o Apache2 procura a porta indicada no virtualhost.

Depois no arquivo de configuração veremos como isso se dá na prática e que colocar www.exemplo.com.br ou exemplo.com.br no ServerName faz muita diferença.

A sintaxe do ServerAlias é:

ServerAlias hostname hostname ...

<VirtualHost *>
ServerName server.domain.com
ServerAlias server server2.domain.com server2
# ...
</VirtualHost>

Caso o Certbot sugira duas opções de sites para instalar o certificado, por exemplo:

1. exemplo.com.br
2. www.exemplo.com.br

escolha sempre a opção com www e procure verificar no arquivo de configuração exemplo.conf em sites-available se o parâmetro ServerName está com www.

Caso ofereça somente uma opção escolha essa mesma, óbvio.

Depois seguirá:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for exemplo.conf
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/exemplo.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/exemplo.conf
Enabling available site: /etc/apache2/sites-available/exemplo.conf

  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Congratulations! You have successfully enabled https://www.exemplo.com.br

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/www.exemplo.com.br/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/www.exemplo.com.br/privkey.pem
Your cert will expire on 2019-10-24. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Lets Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le


Em /etc/letsencrypt/live/www.exemplo.com.br/fullchain.pem está o caminho para o certificado.

Em /etc/letsencrypt/live/www.exemplo.com.br/privkey.pem está o caminho para a chave.

Resumindo a sequência de comandos:

# apt-get update
# apt-get install certbot python3-certbot-apache
# systemctl reload apache2
# apache2ctl configtest
# certbot certonly --apache

Veremos a seguir a configuração do arquivo meu_site.conf que fica em /etc/apache2/sites-available.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando
   3. Configurando
Outros artigos deste autor

Squid - Entendendo um pouco as configurações

Montagem de Cluster

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

Instalação do PostgreSQL, Apache2 e PHP8 no Debian Buster 10 e no Stretch 9

Instalando e Configurando o pgAgent no Linux (pgAdmin e PostgreSQL)

Leitura recomendada

Inprotect + Nessus: Scanner de vulnerabilidades

Configurando uma VPN IPSec Openswan no SUSE Linux 9.3

Resumo da Norma ISO/IEC 13335-3

Exploração de Falhas em Servidores FTP

Uma introdução ao Linux-PAM

  
Comentários
[1] Comentário enviado por maurixnovatrento em 14/05/2023 - 22:02h


Muito bom o artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts