«

»

mar 16

Imprimir Post

Configurando o Apache com o certificado SSL livre da Let’s Encrypt

Prezados Colegas,

Primeiramente, saudações “pinguianas” a todos.

Devido a um problema que tive com o meu fornecedor de certificados SSL (StartSSL.com), eu resolvi enviar e-mails para algumas comunidades de Linux que participo, pedindo indicações para um novo fornecedor, que pudesse emitir Certificados Wildcard Multidomínios.

Então me indicaram o certificado livre Let’s Encrypt.

Fiz uma rápida pesquisa e cheguei a conclusão que NESSE CASO EM ESPECÍFICO ele não atenderia as necessidades de um de meus clientes, pois ele não é Wildcard, ou seja, não funciona no modo “curinga” (*.dominio.com.br).

Mesmo assim, por se tratar de uma solução livre, bateu aquela curiosidade e eu resolvi testar o certificado. E eu gostei tanto que resolvi escrever um artigo do tipo “receita de bolo”, para se instalar um servidor web com Apache e SSL (usando o certificado livre da Let’s Encrypt).

Não irei abordar aqui os complementos do Apache (php, etc), pois o objetivo é mostrar a implementação do certificado.

Para essa experiência, eu usei um domínio que possuo chamado “delaarte.com.br” que não estava em uso (e nem irei renovar) com os DNS configurados assim:

delaarte.com.br apontando para 189.43.148.72 (webserver)
www.delaarte.com.br apontando para 189.43.148.72 (webserver)

Agora chega de “blá blá blá” e vamos colocar a mão na massa:

O primeiro passo é instalar o Apache e o Gid. Faça com o comando abaixo:

# apt-get install -y apache2 git

No segundo passo, iremos subir o módulo SSL e reiniciar o Apache:

# a2enmod ssl && service apache2 restart

No terceiro passo, vamos instalar usar o Gid para instalar o Let’s Encrypt:

# git -C /usr/src/ clone https://github.com/letsencrypt/letsencrypt
# ln -s /usr/src/letsencrypt/letsencrypt-auto /usr/local/bin/letsencrypt

No quarto passo vamos criar a raiz do site (diretório onde ficarão os arquivos) e dar as devidas permissões:

# mkdir -p /var/www/delaarte.com.br
# chown -R www-data:www-data /var/www/delaarte.com.br

No quinto passo, vamos criar o arquivo de configuração para o site:

# touch /etc/apache2/sites-available/delaarte.com.br.conf

Edite-o utilizado o seu editor favorito (o meu é o Vim) e deixe-o assim:

<VirtualHost *:80>
	ServerName www.delaarte.com.br
	ServerAlias delaarte.com.br
	ServerAdmin webmaster@delaarte.com.br
	DocumentRoot /var/www/delaarte.com.br
</VirtualHost>

No sexto passo vamos habilitar o arquivo de configuração e reiniciar o apache:

# ln -s /etc/apache2/sites-available/delaarte.com.br.conf /etc/apache2/sites-enabled/
# service apache2 restart

No sétimo passo, vamos finalmente criar o certificado:

# letsencrypt certonly -d delaarte.com.br -d www.delaarte.com.br -w /var/www/delaarte.com.br

Apenas na geração do primeiro certificado, ele irá instalar todos os pacotes necessários.

Para criar o certificado, script lhe fará algumas perguntas.

Primeiro ele vai perguntar como você gostaria de se autenticar na certificadora. Então você deve selecionar a opção “2“, indicando para ele usar a raiz do site para trocar arquivos de autenticação.

Depois ele vai pedir um endereço de e-mail. A ele será enviado os avisos de renovação e questões relacionadas a segurança.

Depois ele vai peguntar se você aceita os termos e condições de uso. Você deve fazê-lo digitando a “A” e pressionando enter.

Na ultima pergunta o script vai te perguntar se você gostaria de compartilhar seu endereço de e-mail com a Electronic Frontier Foundation, que são sócios fundadores da Let’s Encrypt, para que os mesmos possam lhe enviar informativos. Eu geralmente respondo que não, utilizando a opção “N“.

A saída deve ser algo mais ou menos assim:

Agora que temos os certificados, vamos configurá-los no Apache, então, como oitavo passo, edite novamente o arquivo “/etc/apache2/sites-available/delaarte.com.br.conf” e deixe-o assim:

<VirtualHost *:80>
    ServerName www.delaarte.com.br
    Redirect permanent / https://www.delaarte.com.br/
</VirtualHost>
 
<VirtualHost *:80>
    ServerName delaarte.com.br
    Redirect permanent / https://delaarte.com.br/
</VirtualHost>
 
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@delaarte.com.br
        ServerName www.delaarte.com.br
        ServerAlias delaarte.com.br
        DocumentRoot /var/www/delaarte.com.br
        SSLEngine on
 
		SSLCertificateFile    /etc/letsencrypt/live/delaarte.com.br/cert.pem
		SSLCertificateKeyFile /etc/letsencrypt/live/delaarte.com.br/privkey.pem
		SSLCaCertificateFile  /etc/letsencrypt/live/delaarte.com.br/fullchain.pem
 
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
    </FilesMatch>
        <Directory /usr/lib/cgi-bin>
        </Directory>
                BrowserMatch "MSIE [2-6]" \
                                nokeepalive ssl-unclean-shutdown \
                                downgrade-1.0 force-response-1.0
                BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
        </VirtualHost>
</IfModule>

Após salvar e sair do arquivo, reinicie novamente o Apache:

# service apache2 restart

Agora o servidor já está com SSL configurado. Acesse o site e verá que o cadeado verde e o https já estão lá. Veja:

O décimo e ultimo passo, é colocar o comando de renovação no Crontab, pois a validade do certificado é de apenas 3 meses. Feito isso, ele sempre será renovado automaticamente, sem nenhuma intervenção.

Edite o arquivo “/etc/crontab” e insira a seguinte linha ao final do arquivo:

00 0 1 1,3,5,7,9,11 * root letsencrypt renew 2>&1 >> /var/log/renova.log 2>&1

Agora reinicie o Crontab.

# service cron restart

Isso vai fazer com que o comando de renovação rode automaticamente no dia primeiro dos meses janeiro, março, maio, julho, setembro e novembro.

Isso é tudo!

Esse artigo foi útil? Colabore com o nosso projeto para podermos continuar escrevendo mais artigos como esse!

Projeto Aprendendo Linux

Comentários do Facebook

Comentários

Link permanente para este artigo: https://www.aprendendolinux.com/configurando-o-apache-com-com-certificado-ssl-livre-da-lets-encrypt/

Deixe uma resposta